147
Theoretische Grundlagen der Informatik Wintersemester 2013/2014 Institut für Theoretische Informatik Fakultät für Informatik Karlsruher Institut für Technologie Autoren: Prof. Dr. Jörn Müller-Quade Dirk Achenbach Jeremias Mechler Tobias Nilges Version: Beth 30. Januar 2014

Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

Embed Size (px)

Citation preview

Page 1: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

Theoretische Grundlagen derInformatik

Wintersemester 2013/2014

Institut für Theoretische InformatikFakultät für Informatik

Karlsruher Institut für Technologie

Autoren: Prof. Dr. Jörn Müller-QuadeDirk AchenbachJeremias MechlerTobias Nilges

Version: Beth30. Januar 2014

Page 2: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

Copyright c© ITI und Verfasser 2013-2014

Institut für Theoretische InformatikFakultät für InformatikKarlsruher Institut für TechnologieAm Fasanengarten 576128 Karlsruhe

Page 3: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

Inhaltsverzeichnis

Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v1 Sprachen und Berechnungsmodelle . . . . . . . . . . . . . . . . . . . . . . 1

1.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Endliche Automaten und reguläre Sprachen . . . . . . . . . . . . . . 31.3 Kellerautomaten und kontextfreie Sprachen . . . . . . . . . . . . . . 241.4 Turing-Maschinen und weitere Sprachen . . . . . . . . . . . . . . . . 371.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2 Berechenbarkeitstheorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.1 Die Universelle Turing-Maschine . . . . . . . . . . . . . . . . . . . . . 482.2 Eigenschaften von Sprachen . . . . . . . . . . . . . . . . . . . . . . . . 492.3 Kleene’sches Rekursionstheorem . . . . . . . . . . . . . . . . . . . . . 562.4 Gödels Unvollständigkeitssatz . . . . . . . . . . . . . . . . . . . . . . 612.5 Turing-Reduktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3 Komplexitätstheorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.1 Der O-Kalkül . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.2 Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683.3 NP-Vollständigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.4 Ausgewählte Probleme in NP . . . . . . . . . . . . . . . . . . . . . . . 833.5 Probabilistische Komplexitätsklassen . . . . . . . . . . . . . . . . . . 943.6 Weitere Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

4 Informationstheorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994.1 Was ist Information? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994.2 Die Kolmogorow-Komplexität . . . . . . . . . . . . . . . . . . . . . . 1034.3 Quellcodierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054.4 Kanalcodierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114.5 Kryptographie und Informationstheorie . . . . . . . . . . . . . . . . . 118

A Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127A.1 Philosophisches: Die vier Grundgragen der Philosophie . . . . . . . 127

Page 4: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in
Page 5: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

Vorwort

Liebe Leserin, lieber Leser,

Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in derHand, das begleitend zu meiner gleichnamigen Vorlesung angeboten wird. DasSkript soll Ihnen das Mitschreiben in der Vorlesung ersparen und es Ihnen somitleichter machen, dem dort Gesagten zu folgen.

Das Skript ist aus Aufzeichnungen hervorgegangen, die in meinen Vorlesun-gen „Informatik 3“ und „TGI“ unter der Mithilfe von Nico Döttling entstandenwaren. Die Arbeit des Zusammentragens geht auf Simon Stroh, Jeremias Me-chler und Fabian Tinsz zurück. Die ursprüngliche Konzeption meiner „Info 3“-Vorlesung war inspiriert durch die Vorlesungen Professor Prautzschs und meinesVorgängers Professor Beth. Neben dem vorliegenden Skript empfehle ich Ihnenals weiterführende Literatur das Buch Introduction to the Theory of Computation vonMichael Sipser. Wir folgen mit vielen Konventionen und Methoden diesem Lehr-buch. Für die Informationstheorie empfehlen wir Elements of Information Theoryvon Cover und Thomas.

Leider können wir Fehler in diesem Skript nicht ganz ausschließen. Sollten Siewährend seiner Lektüre auf eine Ungereimtheit oder auf Fehler stoßen, meldenSie diese bitte via E-Mail an Dirk Achenbach <[email protected]>.

Das Ziel der Vorlesung „Theoretische Grundlagen der Informatik“ ist, Ihnen einVerständnis des theoretischen Fundaments der Informatik näherzubringen. Sielernen in der Vorlesung die der Informatik grundlegenden Konzepte und Model-le kennen. Auch zeigen wir Ihnen, wie man in der Informatik richtig argumen-tiert, also Beweise führt. Der Aufbau des Skripts folgt dem der zugehörigen Vor-lesung. Im Kapitel „Sprachen und Berechnungsmodelle“ wenden wir uns dengrundlegenden Berechnungsmodellen, den endlichen Automaten und den Kel-lerautomaten, zu. Das Kapitel „Berechenbarkeitstheorie“ widmet sich dem be-deutendsten Berechnungsmodell der Informatik – der Turingmaschine – und ih-ren Grenzen. Im darauffolgenden Kapitel „Komplexitätstheorie“ wird der Frage

Page 6: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

vi 0. Vorwort

nachgegangen, wann ein Problem als schwer gilt. Das letzte Kapitel „Informati-onstheorie“ widmet sich schließlich dem Konzept der Information.

Bestimmte Beweise haben wir in diesem Skript nicht ausgeführt, sondern Ihnenzur „Übung“ überlassen. Sie sind eingeladen, sich selbst an diesen Beweisen zuversuchen. Manche der ausgelassenen Beweise und Probleme werden auch in dergroßen Saalübung besprochen werden.

Zuletzt wünsche ich Ihnen viel Freude bei der Lektüre des Skripts, dem Besuchder Vorlesung und der Teilnahme am Übungsbetrieb. Ich hoffe, ich kann Sie einwenig für die theoretische Informatik begeistern.

Jörn Müller-Quade

VersionshistorieVersion Datum Autor(en) Änderungen

Beth 30.1.2014 Verbindliche Version für die Klausur.

Page 7: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1. Sprachen undBerechnungsmodelle

Wir wenden uns in diesem Kapitel den grundlegenden Berechnungsmodellen inder Informatik zu: Semi-Thue-Systemen, endlichen Automaten und Kellerauto-maten. Wir charakterisieren die Funktion eines bestimmten Automaten mittelseiner sogenannten (formalen) Sprache. Sie wird durch eine Grammatik erzeugt.

1.1 GrundlagenDefinition 1.1 (Alphabete, Wörter und Sprachen (Wiederholung)).

• Ein Alphabet Σ ist eine nicht leere, endliche Zeichenmenge.

• Ein Wort w = a1 . . . an über ein Alphabet Σ ist eine endliche Zeichenkette mitai ∈ Σ (i = 1, . . . ,n).

• Das leere Wort wird mit ε (teilweise auch λ) bezeichnet.

• |w| bezeichnet die Länge des Wortes w. Insbesondere gilt |ε| = 0.

• w bezeichnet das Spiegelbild des Wortesw, fürw = a1 . . . an ist alsow = an . . . a1.

• Für Wörter a,b, c ist w = abc ihre Konkatenation und a,b, c sind Teilwörter vonw. ε ist Teilwort jedes Wortes.

• Bezüglich der Konkatenation ist ε das neutrale Element: εw = w = wε.

• Eine Menge L von Wörtern wird Sprache genannt.

• Die Menge Σ+ ist die Menge nicht-leerer Wörter über Σ.

• Σ∗ = Σ+ ∪ ε heißt kleenescher Abschluss von Σ.

Page 8: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

2 1. Sprachen und Berechnungsmodelle

Information.

Die leere Sprache L = ∅ enthält nicht das leere Wort ε!Zu a ∈ Σ sagen wir auch Symbol oder Buchstabe, zu w = a1 . . . an auch Stringoder Zeichenkette.

Beispiel 1.Sei Σ = 0, 1,α = 01,β = 0110. Dann sind Σ+ = 0, 1, 00, 01, 10, 11, 000, . . . und0∗ = ε, 0, 00, 000, . . . Sprachen über Σ und αβ = 010110 ∈ Σ+ sowie βα =

011001 ∈ Σ+.

Nachdem diese Definitionen klären, was Wörter und Sprachen sind, soll in denfolgenden Kapiteln behandelt werden, wie sich Sprachen formalisieren und dar-stellen lassen. Dazu werden bereits aus anderen Vorlesungen bekannte Konzeptewie Automaten und Grammatiken noch einmal wiederholt, aber wie beispiels-weise bei den nichtdeterministischen endlichen Automaten auch erweitert.

Typische Fragen, die sich im Zusammenhang mit Sprachen stellen, sind die äqui-valente Repräsentation durch verschiedene Maschinen, Ausdrücke und Gram-matiken oder das Wortproblem (siehe Definition 1.2).

Problem 1.2 (Wortproblem). Für eine gegebene Sprache L über einem Alphabet Σ nen-nen wir die Frage, ob ein Wort w ∈ Σ∗ in der Sprache enthalten ist, also ob w ∈ L ist, dasWortproblem für L.

1.1.1 Semi-Thue-Systeme

Bevor wir formale Grammatiken einführen, stellen wir einen Vorläufer vor, einsogenanntes Termersetzungssystem. Dieses ist nicht so mächtig wie die folgen-den Grammatiken, sondern spiegelt nur die Grundidee wider.

Definition 1.3 (Semi-Thue-System). Eine Produktion ist ein Wortpaar (α,β) ∈Σ∗ × Σ∗, das auch mit α → β bezeichnet wird. Ein Semi-Thue-System besteht auseinem Alphabet Σ und einer endlichen Menge von Produktionen P ⊆ Σ∗×Σ∗. Wir schrei-ben (Σ,P).

Ist ein Semi-Thue-System (Σ,P) gegeben, so sagen wir für α → β ∈ P, dass µβυaus µαυ erzeugt wird. Wir schreiben µαυ ⇒ µβυ und sagen: µβυ ist aus µαυdirekt ableitbar. Ist µβυ in mehreren Schritten aus µαυ ableitbar, schreiben wir:µαυ⇒∗ µβυ.

Beispiel 2.Σ = α,β,γ,P = αβ → γ,βα → γ,αγ → β,αα → ε,ββ → ε,γγ → ε. Wir leiten εaus αββα ab: αββα⇒ αα⇒ ε oder αββα⇒ γγ⇒ ε.

Page 9: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.2. Endliche Automaten und reguläre Sprachen 3

1.1.2 Grammatiken

Während Semi-Thue-Systeme mit ihren Produktionen grammatik-ähnliche Ei-genschaften vorweisen, fehlt es ihnen an zwei wesentlichen Eigenschaften: Daes nur ein einzelnes Alphabet Σ gibt, lässt sich nicht notwendigerweise zwischenZwischenergebnissen und fertig abgeleiteten Wörtern unterscheiden; ebenso gibtes keine dediziertes Startsymbol. Erweitert man sie um diese Forderungen, ergibtsich Folgendes:

Definition 1.4 (Grammatik). Eine Grammatik G ist ein 4-Tupel G = (Σ,V ,S,P) mit

1. dem endlichen Alphabet Σ der Terminalsymbole,

2. dem endlichen Alphabet V der Variablen mit V ∩ Σ = ∅,

3. dem Startsymbol S ∈ V und

4. der Menge von Produktionen P ⊆ (V ∪ Σ)∗V(V ∪ Σ)∗ × (V ∪ Σ)∗ der Form (V ∪Σ)∗V(V ∪ Σ)∗ → (V ∪ Σ).

Die Sprache L(G), die von G erzeugt wird, ist z | z ∈ Σ∗,S⇒∗ z.

Beispiel 3.G = (Σ,V ,S,P) mit Σ = 0, 1, V = S,A,B und

P = S→ 0A,A→ 1A | 1B,B→ ε.

1.2 Endliche Automaten und reguläre SprachenWährend die allgemeine Grammatik-Definition (Definition 1.4) keinerlei Ein-schränkungen bezüglich der erlaubten Produktionen macht, gibt es interessanteKlassen von Grammatiken, die besondere Eigenschaften aufweisen.

Je nach Einschränkungen ergeben sich verschiedene Klassen von Grammatiken,die eine Hierarchie bilden. Neben den Grammatiken vom Chomsky-Typ 3 ausDefinition 1.5 gibt es noch Grammatiken der Chomsky-Typen 0, 1 und 2. Sie sindin der Chomsky-Hierarchie (siehe Definition 1.49) geordnet:Chomsky-3 ⊂ Chomsky-2 ⊂ Chomsky-1 ⊂ Chomsky-0.

1.2.1 Reguläre Sprachen

Die stärksten Einschränkungen der Produktionen sind bei regulären Sprachengegeben. Dies führt auch dazu, dass sie am einfachsten zu analysieren sind.

Page 10: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4 1. Sprachen und Berechnungsmodelle

Definition 1.5 (Reguläre Grammatik). Eine reguläre Grammatik G ist ein 4-TupelG = (Σ,V ,S,P) mit

1. dem endlichen Alphabet Σ der Terminalsymbole,

2. dem endlichen Alphabet V der Variablen mit V ∩ Σ = ∅,

3. dem Startsymbol S ∈ V und

4. der Menge von Produktionen P der Form A→ v mit v = ε, v = a oder v = aB mita ∈ Σ und A,B ∈ V .

Eine solche Grammatik wird auch rechtslineare Grammatik genannt. Besitzt eine Gram-matik statt Produktionen A → aB nur Produktionen der Form A → Ba, nennt mansie linkslinear. Links- oder rechtslineare Grammatiken werden als Grammatiken vomChomsky-Typ 3 bezeichnet.

Die regulären Sprachen sind genau die Sprachen, die von regulären Grammati-ken erzeugt werden.

Information.

Eine Grammatik darf entweder nur linkslineare oder nur rechtslineare Pro-duktionen enthalten, damit sie regulär ist. Eine Grammatik, die beide Produk-tionsformen enthält, erzeugt eine Sprache, die zwar noch kontextfrei (Definiti-on 1.26), aber unter Umständen nicht mehr regulär ist.

Information.

Terminierende Produktionen können vollständig durch ε- und rechts- oderlinkslineare Produktionen ersetzt werden.

Satz 1.6. Jede endliche Sprache ist regulär.

Beweis. In der Übung.

1.2.2 Einfache Maschinenmodelle

Ein wesentliches Konzept der theoretischen Informatik im Kontext der Berechen-barkeit und Entscheidbarkeit sind Maschinen. Diese bestehen (anschaulich) auseiner Steuereinheit mit einer konstanten, endlichen Menge an Zuständen undeinem Speicher mit zugehörigem Speicherzugriffsmechanismus. Bekannte Bei-spiele, die in den folgenden Kapiteln behandelt werden, sind Zustandsmaschi-nen (endliche Automaten), Kellerautomaten (Pushdown Automata) und Band-maschinen (Turing-Maschinen).

Page 11: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.2. Endliche Automaten und reguläre Sprachen 5

Je nach Maschinentyp variieren:

• die Speichergröße und -mechanismus:

– fest,– variabel in der Eingabelänge (z. B. linear oder logarithmisch),– unbeschränkt,– nur ein Zähler,– nur ein Speicher für den aktuellen Zustand und die Zustandsüber-

gangsfunktion.

• das Speicherzugriffsmodell:

– Last In First Out (LIFO),– Random Access Memory (RAM).

Anwendungsbeispiele:• Aufzugsteuerung,

• Analogrechner,

• Quantenrechner,

• Realzeitanforderungen,

• Parallelrechner,

• kommunizierende Maschinen.

Fliehkraftregler:• Früher: Spezialhardware,

• heute: frei programmierbareseingebettetes System.

Grafik: Wikimedia.

Abbildung 1.1: Ein Fliehkraftregler.

Page 12: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

6 1. Sprachen und Berechnungsmodelle

Übrigens . . .

Ein einfaches Beispiel für einen technischen Regelkreis ist der Fliehkraftregler:

„Er wurde 1788 von James Watt in den allgemeinen Maschinenbau eingeführt.James Watt benutzte den Fliehkraftregler, um die Arbeitsgeschwindigkeit dervon ihm verbesserten Dampfmaschine konstant zu halten. Die Dimensionie-rung (Dynamik des Einschwingverhaltens, Schwingungsneigung und Regel-charakteristik) der Fliehkraftregler für diese Aufgabe war die Geburtsstundeder modernen, mathematischen Regelungstechnik.

[. . . ]

Die frühe Bauform zur Regelung an Dampfmaschinen wurde über einen Rie-men angetrieben, sie nutzte die Gewichtskraft als rückstellende Kraft. In Ruheist die Drosselklappe der Dampfleitung zur Dampfmaschine vollständig ge-öffnet. Mit Bewegung des Kolbens der Dampfmaschine beginnt der Fliehkraft-regler sich zu drehen. Durch diese Drehung werden die zwei Gewichte (z. B.aus Gusseisen) durch die Fliehkraft immer weiter gegen die Schwerkraft nachoben und außen gezogen. Über einen Gelenk- und Hebelmechanismus (sieheKniehebel) wird in der Dampfleitung der Maschine eine Drosselklappe betä-tigt, die die Zufuhr des Dampfes zur Maschine verringert. Die Maschine läuftdaraufhin langsamer, bis sich ein stabiler Zustand bzw. eine konstante Dreh-zahl einstellt. Diese Anordnung ist ein Beispiel für einen Regelkreis mit negati-ver Rückkopplung (Je schneller die Maschine läuft, desto weniger Dampf wirdihr zur Verfügung gestellt).“ Quelle: Wikipedia.

1.2.2.1 Deterministische endliche Automaten

Der einfachste Automatentyp sind deterministische endliche Automaten: Aus-gehend vom aktuellen Zustand vollziehen sie für jedes gelesene Zeichen einenZustandsübergang. Eine formale Definition folgt:

Definition 1.7 (Deterministischer endlicher Automat). Ein deterministischer endli-cher Automat (DEA) ist ein 5-Tupel A = (Q, Σ, δ, q0, F) mit

• der endlichen Zustandsmenge Q,

• dem endlichen Eingabealphabet Σ,

• einer Zustandsübergangsfunktion δ : Q× Σ→ Q,

• einem Startzustand q0 und

• der Menge der akzeptierenden Zustände (Finalzustände) F ⊆ Q.

DEAs werden auch Akzeptoren genannt.

Page 13: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.2. Endliche Automaten und reguläre Sprachen 7

Information.

Auf Englisch wird ein DEA deterministic finite automaton (DFA) genannt.

Übrigens . . .

In dieser Vorlesung werden nur Akzeptoren behandelt, also Automaten, dienur 0 oder 1 ausgeben. Automaten mit weiterer Ausgabe, also beispielsweiseMealy- und Moore-Automaten, werden in anderen Vorlesungen behandelt.

Ein DEA A = (Q, Σ, δ, q0, F) akzeptiert das Wort w = a1 . . . an (ai ∈ Σ), wenn eseine Abfolge von Zuständen r0, . . . rn gibt, sodass

1. r0 = q0,

2. δ(ri,ai+1) = ri+1 für i = 0, . . . ,n− 1 und

3. rn ∈ F.

Man kann sich das „Einlesen“ eines Wortes durch einen endlichen Automatenfolgendermaßen vorstellen: Ausgehend vom aktuellen Zustand wird das nächs-te Zeichen der Eingabe betrachtet. Die Übergangsfunktion gibt dann an, welcherFolgezustand angenommen wird. Daraufhin wird das nächste Zeichen eingele-sen, das Eingabeword also sukzessive abgearbeitet. Befindet sich der Automatnach dem Einlesen der Eingabe in einem akzeptierenden Zustand, gilt die Einga-be als akzeptiert; andernfalls gilt sie als abgelehnt.

Die Funktionsweise von endlichen Automaten ist intuitiv einfacher zu erfassen,wenn man sie graphisch repräsentiert. Sie werden dann üblicherweise als gerich-tete Graphen gezeichnet. Knoten entsprechen dabei Zuständen. Der Startzustandwird durch einen kleinen Pfeil markiert, akzeptierende Zustände zweigestrichengezeichnet. Kanten repräsentieren Übergänge; die Kantenbeschriftung gibt an,bei welcher Eingabe der Übergang erfolgt. Abbildung 1.2 stellt einen nichtdeter-ministischen Automaten dar.

Um auch Wörter als Eingabe zuzulassen, definieren wir die Funktion

δ : Q× Σ∗ → Q, (q, vw) 7→

q falls vw = ε

δ(δ(q, v),w) falls v ∈ Σ und w ∈ Σ∗

Oftmals schreibt man der Einfachheit halber statt δ nur δ.

Übrigens . . .

DEAs lassen sich auf verschiedene Weisen implementieren. Beispielhaft seienzwei Möglichkeiten genannt:

Page 14: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

8 1. Sprachen und Berechnungsmodelle

• Als Zustandsübergangs-Tabelle: Die Zustands-Übergangsfunktion wirdals zweidimensionales Array umgesetzt. Eine Dimension repräsentiertden Zustand, die zweite die Eingabe, in der so indizierten Speicherstellesteht der Folgezustand. Diese Variante ist sehr cache-effizient, vermeidetSprünge und ist insbesondere für vollständige Zustandsübergangsfunk-tionen geeignet; ansonsten muss ein besonderer „ablehnender Zustand“hinzugefügt werden.

• Als Switch-Case-Struktur: Für jeden Zustand sind die möglichen Über-gänge bei entsprechender Eingabe ausprogrammiert, was bei unvollstän-digen Zustandsübergangsfunktionen vorteilhaft sein kann. Diese Varian-te ist insbesondere für objekt-orientierte Sprachen geeignet.

1.2.2.2 Nichtdeterministische endliche Automaten

Während es bei DEAs zu jeder Eingabe (höchstens) einen Folgezustand gibt, er-lauben wir nun für dieselbe Eingabe mehrere Folgezustände sowie Zustands-übergänge ohne Eingabe. Das Verhalten eines solchen Automaten ist also nichtmehr deterministisch. Formal erweitern wir dazu die Zustandsübergangsfunkti-on δ dahingehend, dass es statt einzelnen Folgezuständen nun Mengen von Fol-gezuständen gibt und auch das leere Wort ε eine gültige Eingabe darstellt. EinBeispiel ist in Abbildung 1.2 gezeigt.

Definition 1.8 (Nichtdeterministischer endlicher Automat). Ein nichtdeterministi-scher endlicher Automat (NEA) ist ein 5-Tupel A = (Q, Σ, δ, q0, F) mit

• der endlichen Zustandsmenge Q,

• dem endlichen Eingabealphabet Σ,

• einer Zustandsübergangsfunktion δ : Q× (Σ∪ ε)→ 2Q,

• einem Startzustand q0 und

• der Menge der akzeptierenden Zustände F ⊆ Q.

Information.

Auf Englisch wird ein NEA nondeterministic finite automaton (NFA) genannt.

Definition 1.9 (ε-Abschluss). Sei A = (Q, Σ, δ, q0, F) ein NEA. Die Funktion

E : Q→ 2Q, q 7→ qi ∈ Q | qi ist von q durch eine Reihe von ε-Übergängen erreichbar

heißt ε-Abschluss von q. Insbesondere ist q ∈ E(q).

Wie schon bei DEAs definieren wir die Funktion δ, die die Funktionalität von δ„erweitert“:

Page 15: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.2. Endliche Automaten und reguläre Sprachen 9

1. δ : Q× (Σ∪ ε)→ 2Q

δ(qi,a) =

E(qi) falls a = ε⋃qj∈E(qi)

⋃qk∈δ(qj,a)

E(qk)

für a ∈ Σ

δ berücksichtigt nun den ε-Abschluss für einzelne Zeichen.

2. δ : 2Q × (Σ∪ ε)→ 2Q

δ(R,a) =

⋃qi∈R

E(qi) falls a = ε⋃qi∈R

δ(qi,a) für a ∈ Σ

δ berücksichtigt nun Zustandsmengen.

3. δ : Q× Σ∗ → 2Q

δ(qi,w) =

E(qi) falls w = ε

δ(qi,w) falls w ∈ Σ⋃qj∈δ(qi,v)

δ(qj,a) falls w = va,a ∈ Σ, |v| > 0

δ unterstützt nun Wörter als Eingabe.

4. δ : 2Q × Σ∗ → 2Q

δ(R,w) =⋃qi∈R

δ(qi,w)

δ unterstützt nun Zustandsmengen bei Wörtern als Eingabe.

Ein NEAA = (Q, Σ, δ, q0, F) akzeptiert das Wortw = a1 . . . an, wenn es a ′1 . . . a′m

mit a ′i ∈ Σ∪ ε und eine Abfolge von Zuständen r0, . . . , rm gibt, sodass

1. r0 = q0,

2. a ′1 . . . a′m = w,

3. ri+1 ∈ δ(ri,a ′i+1) für i = 0, . . . ,m− 1 und

4. rm ∈ F.

Definition 1.10 (Sprache eines Automaten). Zu einem gegebenen AutomatenA = (Q, Σ, δ, q0, F) bezeichnet L(A) die von ihm akzeptierte Sprache:

L(A) = w ∈ Σ∗ | δ(q0,w)∩ F 6= ∅.

Page 16: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

10 1. Sprachen und Berechnungsmodelle

Beispiel 4.

q0

q2

q1 q30

1

1

1

0

0,1

Abbildung 1.2: Nichtdeterministischer Automat (NEA), der 01+ erkennt.

Nachdem wir jetzt zwei Maschinenmodelle kennengelernt haben, stellt sich dieFrage nach der Mächtigkeit dieser Modelle. Dazu zeigen wir zuerst, dass diesebeiden Modelle äquivalent sind.

Satz 1.11. Für jeden nichtdeterministischen endlichen Automaten existiert ein determi-nistischer endlicher Automat, der dieselbe Sprache akzeptiert.

Beweis. Zum NEA A = (Q, Σ, δ, q0, F) konstruieren wir einen DEAA ′ = (Q ′, Σ ′, δ ′, q ′0, F

′):

Wir fassen dazu für jeden möglichen Übergang die Folgezustände in Mengen-schreibweise in einen neuen Zustand zusammen. Ein einzelner Folgezustand qjwird also zum Zustand qj, die Folgezustände qk, . . . ,ql werden zum Zustandqk, . . . ,ql. Wir haben also im Vergleich zum NEA keine Menge von Zuständenmehr, sondern einzelne Zustände, die Mengen enthalten.

1. Setze Q ′ = 2Q und q ′0 = q0. Wir legen also eine neue Zustandsmengeals Potenzmenge der alten Zustandsmenge fest. Die Zustände des neuenZustands sind also Mengen. Unser neuer Startzustand ist die Menge, dieausschließlich den alten Startzustand enthält.

2. Für R ∈ Q ′ und a ∈ Σ sei δ ′(R,a) = qi ∈ Q | qi ∈ δ(qj,a) für ein qj ∈ R. Dieneue Übergangsfunktion fasst also alle möglichen Zustände qi ∈ Q zusam-men, die man aus allen Zuständen der Zustandsmenge durch Eingabe vona erreichen kann.

3. F ′ = R ∈ Q ′ | ∃q ∈ R : q ∈ F. Akzeptierende Zustände sind Zustände, dieeinen Finalzustand enthalten.

Diese Konstruktion ist ausreichend, solange (Q,Σ, δ,q0, F) keine ε-Übergänge hat.Befinden sich ε-Übergänge in δ, erweitern wir die Definition von δ ′ und q ′0 umden ε-Abschluss (vgl. Definition 1.9):

Page 17: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.2. Endliche Automaten und reguläre Sprachen 11

1. q ′0 = E(q0)

2. δ ′(R,a) = qi | qi ∈ E(δ(qj,a)) für qj ∈ R

Durch die Äquivalenz der beiden Modelle können wir elegant beweisen, dassendliche Automaten durch Grammatiken vom Chomsky-Typ 3 beschrieben wer-den können und umgekehrt.

Satz 1.12. Die Klasse der von endlichen Automaten akzeptierten Sprachen und die Klasseder von Grammatiken vom Chomsky-Typ 3 erzeugten Sprachen stimmen überein.

Beweis. „⇒“Gegeben sei ein DEA A = (Q, Σ, δ, q0, F) für die Sprache L = L(A). Wir kon-struieren eine Grammatik G = (Σ,V ,S,P) für L, indem wir eine Berechnung einesAutomaten simulieren. Dazu sei V = Q,Σ = Σ ′ und S = q0, wobei Σ ′ das Al-phabet von L ist. Für δ(q,a) = q ′ nehmen wir q → aq ′ in P auf, für alle q ∈ Fzusätzlich q → ε. Falls w = a1 . . . an ∈ L, dann existiert eine Abfolge von Zu-ständen q0,q1, . . . ,qn mit qn ∈ F und δ(qi,ai+1) = qi+1. Entsprechend gilt in derGrammatik q0 ⇒ a1q1 ⇒ a1a2q2 ⇒ · · · ⇒ aqn ⇒ w. Da alle Ableitungen dieseForm haben, erzeugt G genau L.

„⇐“Umgekehrt sei eine Grammatik G = (Σ,V ,S,P) vom Chomsky-Typ 3 gege-ben, deren Produktionen o. B. d. A. der Form A → aB oder A → ε sind (mansieht einfach, dass sich A → a durch Produktionen A → aB und B → ε aus-drücken lässt) und L(G) die vonG erzeugte Sprache. Wir konstruieren einen NEAA = (Q, Σ, δ, q0, F), der L(G) akzeptiert. Dazu sei Q = V , q0 = S und F die Men-ge aller A ∈ V für die A → ε ∈ P. Schließlich sei δ(A,a) = B | (A → aB) ∈ P. Aus der Folge von Ableitungen der Grammatik lässt sich also eine Folge vonZustandsübergängen für A konstruieren.

Beispiel 5.Durch die Potenzmengenkonstruktion kann aus dem NEA aus Abbildung 1.3aein DEA erstellt werden (Abbildung 1.3b).

q0 q1

q2

ε,b

ε, c b

a, c

c

(a) NEA

q0,q1,q2 q1,q2

q2

b

a, c

b

a, c

(b) DEA

Page 18: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

12 1. Sprachen und Berechnungsmodelle

1.2.3 Reguläre Ausdrücke

Neben Grammatiken und Automaten bieten reguläre Ausdrücke eine weitere Re-präsentationsmöglichkeit von regulären Sprachen. Sie finden in der Praxis zumFiltern und Parsen von Text häufig Anwendung und werden sowohl von String-bibliotheken gängiger Programmiersprachen als auch eigenständigen Tools un-terstützt.

Definition 1.13 (Reguläre Ausdrücke). Sei Σ ein endliches Alphabet. Dann ist

• ∅ der reguläre Ausdruck, der die leere Sprache,

• ε der reguläre Ausdruck, der die Sprache des leeren Worts und

• a ∈ Σ der reguläre Ausdruck, der die Sprache mit dem Wort w = a

bezeichnet. Sind A1 und A2 reguläre Ausdrücke, dann sind auch

• die Vereinigung A1 +A2,

• die Konkatenation A1 ·A2 und

• der kleenesche Abschluss (A1)∗

reguläre Ausdrücke.

Information.

Statt + ist auch | („oder“) für die Vereinigung von Sprachen üblich.

Häufig wird die Schreibweise vereinfacht, d. h. Klammern und Multiplikations-zeichen weggelassen. Dabei gilt folgende Operatoren-Präzedenz:

1. Kleenescher Abschluss: ∗

2. Konkatenation: ·

3. Vereinigung: +

Beispiel 6.Sei Σ = a,b. Es gilt: a(a+ b)∗ ≡ (a) · (((a) + (b))∗)

Satz 1.14. Genau die regulären Sprachen lassen sich durch reguläre Ausdrücke beschrei-ben.

Page 19: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.2. Endliche Automaten und reguläre Sprachen 13

Beweis. „⇒“:Übung.

„⇐“:Wir skizzieren eine strukturelle Induktion.

∅, ε und a für a ∈ Σ bezeichnen reguläre Sprachen. Diese werden durch die Au-tomaten in Abbildung 1.4 erkannt.

q0

(a) Ein Automat, der ∅ er-kennt.

q0

(b) Ein Automat, der dieSprache L = ε erkennt.

q0 q1

a

(c) Ein Automat, der dieSprache L = a erkennt.

Abbildung 1.4: Endliche Automaten für einfache reguläre Ausdrücke.

Für A1 und A2 gebe es schon endliche Automaten, die die zugehörigen Sprachenakzeptieren. Seien diese mit AA1 und AA2 bezeichnet.

Wir müssen nun zeigen, dass je ein Automat existiert, der A1+A2, A1 ·A2 und A∗1akzeptiert.

• A1 +A2: Wir führen einen neuen Startzustand ein. Aus diesem führen zweiε-Übergänge in die Anfangszustände von AA1 und AA2 .Siehe Abbildung 1.5a.

• A1 ·A2: Wir „konkatenieren“ AA1 und AA2 : Aus jedem akzeptierenden Zu-stand von AA1 führen wir einen ε-Übergang in den Startzustand von AA2 .Siehe Abbildung 1.5b.

• A∗1: Wir führen einen neuen Startzustand ein. Dieser ist gleichzeitig ein ak-zeptierender Zustand. Aus dem neuen Startzustand führt ein ε-Übergangin den Startzustand von AA1 . Alle akzeptierenden Zustände von AA1 füh-ren mittels ε-Übergängen zusätzlich in den neuen Startzustand. Siehe Ab-bildung 1.5c.

Page 20: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

14 1. Sprachen und Berechnungsmodelle

· · ·

A 1

A 2

· · ·

A

···

A 2

A ′

1

ε

ε

(a) Konstruktion, um aus Automaten fürA1und A2 einen Automaten zu machen, derA1 +A2 akzeptiert.

· · ·

· · ·

1

A 2

A ′

· · ·

1

· · ·

2

ε

A

A A

(b) Konstruktion, um aus Automaten fürA1und A2 einen Automaten zu machen, derA1 ·A2 akzeptiert.

· · · → · · ·ε

AA'

A

ε

(c) Konstruktion, um aus einem Automaten für A1 einen Automaten zu machen, der A∗1akzeptiert.

Abbildung 1.5: Automaten für reguläre Ausdrücke.

Übrigens . . .

Die regulären Ausdrücke von Werkzeugen wie awk, Perl oder vim sind mächti-ger als das, was wir als reguläre Ausdrücke definiert haben. Diese „erweitertenregulären Ausdrücke“ beschreiben wesentlich mehr, als von endlichen Auto-maten erkannt werden kann.

Literaturempfehlung: „Reguläre Ausdrücke“ von Jeffrey E. F. Friedlbei O’Reilly.

1.2.4 Minimierung von Automaten

Gegeben sei eine Sprache L und ein DEA A = (Q, Σ, δ, q0, F) mit L(A) = L.

Satz 1.15. ZuA gibt es einen AutomatenA ′ = (Q ′, Σ ′, δ ′, q ′0, F′) mit L(A ′) = L(A) =

L und minimalem |Q ′|.

Die Idee ist, einen Automaten zu konstruieren, bei dem alle Zustände, die für be-liebige Eingaben von q0 aus nie erreicht werden können, entfernt werden. Diese

Page 21: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.2. Endliche Automaten und reguläre Sprachen 15

Zustände nennen wir auch überflüssige Zustände. Weiterhin sollen alle äquivalen-ten Zustände, also solche, die für alle Wörter zu gleichem Akzeptanzverhaltenführen, zusammengefasst werden. Der so enstehende Automat heißt Äquivalenz-klassenautomat.

Definition 1.16 (Äquivalente Zustände). Zwei Zustände qi,qj eines endlichen Auto-maten heißen äquivalent (qi ≡ qj), wenn für alle Wörter w ∈ Σ∗ gilt:

δ(qi,w)∩ F 6= ∅ ⇐⇒ δ(qj,w)∩ F 6= ∅,

also genau dann, wenn aus ihnen heraus genau die gleichen Wörter in einen akzeptieren-den Zustand führen.

[q] bezeichnet die Äquivalenzklasse von q, also alle qi ∈ Q, für die qi ≡ q gilt.

Damit können wir nun einen Äquivalenzklassenautomat definieren.

Definition 1.17 (Äquivalenzklassenautomat). Der ÄquivalenzklassenautomatA ′ = (Q ′, Σ ′, δ ′, q ′0, F ′) zu einem deterministischen endlichen AutomatenA = (Q, Σ, δ, q0, F) ist definiert durch:

• Q ′ = [q] | q ∈ Q

• Σ ′ = Σ

• q ′0 = [q0]

• F ′ = [q] | q ∈ F

• δ ′([q],a) = [δ(q,a)]

Satz 1.18. Der Äquivalenzklassenautomat A ′ ist wohldefiniert und akzeptiert die gleicheSprache wie A.

Beweis. Dazu gilt es zu zeigen, dass ein Finalzustand von A ′ nur zu einem Final-zustand von A äquivalent ist und δ bei gleicher Eingabe stets in einen äquivalen-ten Zustand überführt.

1. Wohldefiniertheit von F ′:Für qi ∈ [q] ist zu zeigen: qi ∈ F ⇐⇒ q ∈ F. Wir betrachten nun dieÄquivalenz für das leere Wort ε. Nach Definition gilt:

q ∈ F ⇐⇒ δ(q, ε) ∈ F ⇐⇒ δ(qi, ε) ∈ F ⇐⇒ qi ∈ F

Es gilt also entweder qi ∈ F∧ q ∈ F oder qi /∈ F∧ q /∈ F. Damit ist F ′ wohlde-finiert.

Page 22: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

16 1. Sprachen und Berechnungsmodelle

2. Wohldefiniertheit von δ ′:Es ist zu zeigen: ∀a ∈ Σ : qi ≡ q⇒ δ(qi,a) ≡ δ(q,a). Nach Definition gilt fürqi ≡ q: ∀w ∈ Σ∗ : qi ≡ q⇒ δ(qi,w) ≡ δ(q,w).

qi ≡ q⇒ ∀w ∈ Σ∗ : δ(qi,w) ∈ F ⇐⇒ δ(q,w) ∈ F⇒ ∀a ∈ Σ,w ∈ Σ∗ : δ(δ(qi,a),w) = δ(qi,aw) ∈ F⇐⇒ ∀a ∈ Σ,w ∈ Σ∗ : δ(δ(q,a),w) = δ(q,aw) ∈ F⇒ δ(qi,a) ≡ δ(q,a)

3. Es bleibt zu zeigen, dass A ′ dieselbe Sprache akzeptiert:Dazu sei w ∈ Σ∗ und q0,q1, . . . ,qn die von A beim Lesen durchlaufendeZustandsfolge. Nach Konstruktion durchläuftA ′ [q0], [q1], . . . , [qn].A akzep-tiert genau dann, wenn qn ∈ F. Dies gilt genau dann, wenn [qn] ∈ F ′ unddies genau dann, wenn A ′ akzeptiert.

1.2.4.1 Der Satz von Nerode

In diesem Abschnitt wird die Nerode-Relation eingeführt, welche sowohl einenAnsatz zur Minimierung von Automaten als auch ein Kriterium für die Regula-rität von Sprachen liefert.

Definition 1.19 (Rechtslineare Äquivalenzrelation). Eine Äquivalenzrelation R aufΣ∗ heißt rechtslinear, wenn gilt:

∀x,y, z ∈ Σ∗ : xRy⇒ xz Ryz

Mit dem Index von R, ind(R), bezeichnet man die Anzahl der Äquivalenzklassen von R.

Beispiel 7.Es sei A ein endlicher Automat und x,y ∈ Σ∗. Dann ist

R = (x,y) | δ(q0, x) = δ(q0,y)

eine rechtslineare Relation. Der Index von R ist gleich der Anzahl nicht überflüs-siger Zustände von A.

Definition 1.20 (Nerode-Relation). Für eine Sprache L ⊆ Σ∗ ist die Nerode-RelationRL definiert durch:

∀x,y ∈ Σ∗ : xRL y ⇐⇒ (∀z ∈ Σ∗ : xz ∈ L ⇐⇒ yz ∈ L)

RL ist eine Äquivalenzrelation und rechtslinear:

xRL y⇒ ∀w ∈ Σ∗ : xw ∈ L ⇐⇒ yw ∈ L⇒ ∀w, z ∈ Σ∗ : xzw ∈ L ⇐⇒ yzw ∈ L⇒ ∀z ∈ Σ∗ : xz RL yz

Page 23: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.2. Endliche Automaten und reguläre Sprachen 17

Satz 1.21 (Satz von Myhill-Nerode). Für L ⊆ Σ∗ sind die folgenden Aussagen äquiva-lent:

1. L wird von einem DEA akzeptiert.

2. L ist die Vereinigung von Äquivalenzklassen einer rechtslinearen Äquivalenzrela-tion mit endlichem Index.

3. Die Nerode-Relation RL hat endlichen Index.

Beweis.

• (1)⇒ (2)

Sei A = (Q, Σ, δ, q0, F) der DEA, der L akzeptiert. Weiterhin sei die Äqui-valenzrelation R definiert durch

∀x,y ∈ Σ∗ : xRy ⇐⇒ δ(q0, x) = δ(q0,y).

R ist offensichtlich rechtslinear und besitzt maximal |Q| 6= ∞ Äquivalenz-klassen, hat also endlichen Index. Die Vereinigung der Äquivalenzklassen,für die δ(q0,w) ∈ F gilt, ist gerade L.

• (2)⇒ (3)

Sei R nach Voraussetzung wie oben. Dann gilt:

∀x,y, z ∈ Σ∗ : xRy⇒ xz Ryz

Daraus folgt:

xz ∈ L ⇐⇒ yz ∈ L

Insgesamt gilt also:

xRy⇒ xRL y

Da R nach Voraussetzung endlichen Index hat, folgt daraus, dass ind(RL) 6ind(R) <∞.

• (3)⇒ (1)

Nach Voraussetzung hat RL endlich viele Äquivalenzklassen. Wir konstru-ieren den Nerode-Automaten A ′ = (Q ′, Σ ′, δ ′, q ′0, F

′):

1. Q ′ = [w] | w ∈ Σ∗

2. Σ ′ = Σ

3. q ′0 = [ε]

4. F ′ = [w] | w ∈ L

5. δ ′([w],a) = [wa]

Page 24: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

18 1. Sprachen und Berechnungsmodelle

δ′ (und damit δ ′) ist wohldefiniert, denn ist [w] = [w ′], gilt wRLw ′. Aus der

Rechtslinearität von RL folgt waRLw ′a. Daher ist auch [wa] = [w ′a] unddamit δ ′([w],a) = δ ′([w ′],a).

Korollar 1.22. Der Nerode-Automat ist minimal.

Beweis. Es sei A = (Q, Σ, δ, q0, F) der Nerode-Automat undA ′ = (Q ′, Σ ′, δ ′, q ′0, F

′) ein DEA, der L akzeptiert. Aus (1) ⇒ (2) desletzten Beweises folgt, dass eine rechtslineare Äquivalenzrelation R mit Indexind(R) 6 |Q ′| existiert. Wegen (2) ⇒ (3) ist ind(RL) 6 ind(R). Insgesamt hat Aalso |Q| = ind(RL) 6 ind(R) = |Q ′| Zustände und ist damit minimal.

Es bleibt zu zeigen, dass der Äquivalenzklassenautomat, der durch die Relation≡ induziert wird, minimal ist.

Satz 1.23. Es gilt ind(≡) = ind(RL). Der Äquivalenzklassenautomat ist also minimal.

Beweis. Wir müssen zeigen, dass ind(≡) 6 ind(RL) gilt, also für alle x,y ∈ Σ∗

xRL y⇒ δ(q0, x) ≡ δ(q0,y)

gilt.

xRL y⇒ ∀z ∈ Σ∗ : xz ∈ L ⇐⇒ yz ∈ L⇒ ∀z ∈ Σ∗ : δ(q0, xz) ∈ F ⇐⇒ δ(q0,yz) ∈ F⇒ ∀z ∈ Σ∗ : δ(δ(q0, x), z) ∈ F ⇐⇒ δ(δ(q0,y), z) ∈ F⇒ δ(q0, x) ≡ δ(q0,y).

Der Satz von Myhill-Nerode liefert also eine Möglichkeit, die minimale Anzahlvon Zuständen zu bestimmen und einen minimalen Automaten zu konstruieren.Weiterhin gibt er ein Kriterium an, um reguläre Sprachen zu erkennen.

1.2.4.2 Konstruktion des Äquivalenzklassenautomaten

Gegeben sei ein DEA A = (Q, Σ, δ, q0, F) ohne überflüssige Zustände. In-dem wir systematisch alle Zustände, die nicht zueinander äquivalent sind, be-stimmen, konstruieren wir den dazu gehörigen ÄquivalenzklassenautomatenA ′ = (Q ′, Σ ′, δ ′, q ′0, F

′).

Page 25: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.2. Endliche Automaten und reguläre Sprachen 19

1. Entferne alle überflüssigen Zustände. Es bleiben die Zustände q0, . . . ,qn üb-rig. Erstelle eine Tabelle wie folgt:

q1

q2

...

qn

q0 q1 · · · qn−1

2. Die Zustandspaare (qi,qj) ∈ (F × F) ∪ (F × F) (also die, bei denen qi undqj unterschiedliches Akzeptanzverhalten haben), sind nicht verschmelzbarund werden markiert.

3. Markiere alle Paare (qi,qj), für die es ein a ∈ Σ gibt, für das (δ(qi,a), δ(qj,a))markiert ist.

4. Wiederhole Schritt 3, bis keine Markierungen hinzu kommen.

5. Verschmelze die unmarkierten Paare.

Wir erhalten A ′, indem wir für alle i den Zustand

[qi] = qi∪ qj | (qi,qj) ist nicht markiert.

setzen und den Rest entsprechend Definition 1.17 anpassen.

1.2.4.3 Korrektheit des Algorithmus

Beweis. Beweis mit vollständiger Induktion über die Wortlänge n = |w|.

1. Induktionsanfang: Fürw = ε, also n = |w| = 0werden die nichtäquivalentenZustände in Schritt 2 korrekt und vollständig markiert.

2. Induktionsvoraussetzung: Für alle Wörter w mit |w| = n seien alle nicht-äquivalenten Zustände korrekt markiert. Schritt 3 wurde dabei n − 1-malausgeführt.

3. Induktionsschritt: Wir betrachten nun die Wörter w ′ = aw mit |w ′| = n+ 1

und a ∈ Σ. Für ein nichtäquivalentes Zustandspaar (qi,qj) wurden die Fol-gezustände (δ(qi,a), δ(qj,a)) bereits in der n-ten Iteration von Schritt 3 be-trachtet und nach Induktionsvoraussetzung korrekt markiert. In der aktu-ellen Iteration wird also auch (qi,qj) markiert.

Page 26: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

20 1. Sprachen und Berechnungsmodelle

Information.

Neben dem hier vorgestellten Markierungsverfahren gibt es noch weitere, bei-spielsweise das in der Vorlesung von Prof. Dr. Wagner behandelte Verfahren:

1. Alle Zustände werden zu einer Zustandsmenge zusammengefasst.

2. Die Zustände, die für die Eingabe w = ε unterschiedliches Akzeptanz-verhalten haben, werden in zwei unterschiedliche Zustandsmengen ge-trennt.

3. Iterativ für allew ∈ Σ+ mit aufsteigender Länge werden die so entstande-nen Zustandsmengen bei unterschiedlichem Akzeptanzverhalten weiteraufgeteilt.

4. Ändern sich die Zustandsmengen für alle Wörter der Länge n nicht wei-ter, endet das Verfahren. Die einzelnen Mengen enthalten die zueinanderäquivalenten Zustände.

Beispiel 8.

0. Schritt. Automat:q0

q1q2

q3q4

01

0

1

0

1

0

1

0

1

Äquivalenzklassen:

q1

q2

q3

q4

q0 q1 q2 q3

Page 27: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.2. Endliche Automaten und reguläre Sprachen 21

1. Schritt. Automat:q0

q1q2

q3q4

01

0

1

0

1

0

1

0

1

Äquivalenzklassen:

q1

q2

q3 0 0 0

q4 0

q0 q1 q2 q3

Akzeptierende Zustände werden von nicht akzeptierenden Zuständen ge-trennt.

2. Schritt. Automat:q0

q1q2

q3q4

01

0

1

0

1

0

1

0

1

Äquivalenzklassen:

q1 1

q2 1

q3 0 0 0

q4 1 1 0

q0 q1 q2 q3

Alle Zustandspaare (qi,qj), für die es ein a ∈ Σ gibt, für das (δ(qi,a), δ(qj,a))im letzten Schritt markiert wurde, werden markiert. Es sind keine weiterenMarkierungen mehr möglich, die unmarkierten Zustandspaare werden zuden Zuständen q0,q2 und q1,q4 zusammengefasst.

3. Resultierender Äquivalenzklassenautomat:

q0,q2 q1,q4 q3

0

1

0

1

0

1

Page 28: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

22 1. Sprachen und Berechnungsmodelle

Mysterium.

Die Sternhöhe eines regulären Ausdrucks bezeichnet die Tiefe, in der der Klee-nesche Stern in einem regulären Ausdruck geschachtelt ist. Beispielsweise hatder Ausdruck a∗ die Sternhöhe 1 und (a∗b)∗ die Sternhöhe 2. Die (minimale)Sternhöhe einer Sprache wiederum ist die geringste Schachtelungstiefe, mit dereine Sprache durch einen regulären Ausdruck beschrieben werden kann. Da inunserem Beispiel (a∗b)∗ = (a+ b)∗, hat die zugehörige Sprache die Sternhöhe1. Es existiert ein Algorithmus, der die Sternhöhe einer Sprache bestimmenkann.

Führt man das Komplement als zusätzlichen Operator ein, gewinnt man eineMöglichkeit, in bestimmten Situationen auf die Verwendung des KleeneschenSterns zu verzichten. Zu einem gegebenen regulären Ausdruck R bezeichnetsein Komplement R die Menge aller Wörter über dem Alphabet, die durch Rnicht beschrieben werden, also Σ∗ \ R.

Unter Verwendung des Komplementoperators gelingt nun folgender Trick:(a+b)∗ = b+b. Wir konnten in diesem Fall also auf die Verwendung des Klee-neschen Sterns verzichten. Die Sternhöhe einer Sprache zu bestimmen, wennman reguläre Ausdrücke mit Komplement zur Verfügung hat, ist bislang un-gelöst. Auch ist unklar, ob überhaupt Sprachen mit einer Sternhöhe größer 1existieren.

1.2.5 Das Pumping-Lemma für reguläre Sprachen

Mit dem Satz von Myhill-Nerode (vgl. Satz 1.21) haben wir schon ein notwen-diges und hinreichendes Kriterium für die Regularität von Sprachen kennen-gelernt. Die Überprüfung dieses Kriteriums ist allerdings meist aufwendig. DasPumping-Lemma für reguläre Sprachen liefert zwar nur ein notwendiges Krite-rium, dieses ist jedoch in unserem Fall ausreichend und einfach überprüfbar.

Satz 1.24 (Pumping-Lemma für reguläre Sprachen). Ist L eine reguläre Sprache,dann existiert eine Zahl p, sodass für jedes Wort w ∈ L mit |w| > p Folgendes gilt:w kann in drei Teilwörter x,y, z zerlegt werden, also w = xyz, sodass

1. |y| > 0 (y 6= ε),

2. |xy| 6 p und

3. für jedes i > 0 xyiz ∈ L ist.

Übrigens . . .

Die Regularität von endlichen Sprachen widerspricht dem Pumping-Lemmanicht.

Page 29: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.2. Endliche Automaten und reguläre Sprachen 23

q0 qj qnx

y

z

Abbildung 1.6: Prinzip des Pumping-Lemmas: Der endlicher Automat hat eineSchleife.

Idee. Wenn die Sprache regulär ist, gibt es einen endlichen Automaten, der sie ak-zeptiert. Sei dieser o. B. d. A. deterministisch (Satz 1.11, Seite 10) und bezeichne pdie Anzahl seiner Zustände. Wir wählen nun ein Wort s ∈ Σ∗ mit n = |s| > p, dasvon ihm akzeptiert wird. Betrachten wir nun die Zustandsfolge (qi)(i ∈ 0, . . . ,p−1) der Länge n, die der Automat beim Akzeptieren durchläuft. Ein Zustand musshier mehrfach durchlaufen werden (Schubfachprinzip). Ein Zustand qi muss sich

s = s1 s2 · · · sn (si ∈ Σ, n > p)↑ ↑ ↑ ↑ ↑q0 q1 q2 qp−2 qp−1 ∈ F ← Schubfachprinzip

in dieser Folge wiederholen. Also enthält der Automat eine Schleife. Diese Schlei-fe kann beliebig oft durchlaufen werden. Das Teilwort von s, das mit der Schleifeim Automaten korrespondiert, kann an dieser Stelle also „aufgepumpt“ werden.

Übrigens . . .

Das Schubfach- oder Taubenschlagprinzip (pigeonhole principle) besagt: Verteiltman n Tauben auf m Fächer und ist n > m, dann gibt es mindestens ein Fach,das mehr als eine Taube enthält. Man kann sich leicht davon überzeugen, dassdies zutrifft.

Für die Regularität von Sprachen ist das Pumping-Lemma lediglich ein notwen-diges, aber kein hinreichendes Kriterium. Es gibt also nicht-reguläre Sprachen,die es erfüllen. Entsprechend kann man es lediglich verwenden, um zu zeigen,dass eine Sprache nicht regulär ist. Dazu reicht es aber nicht, einen Widerspruchfür ein bestimmtes, festes p zu finden, sondern für unendlich viele. Es genügtauch nicht, den Widerspruch nur für eine Zerlegung herzuleiten, er muss für allemöglichen Zerlegungen gefunden werden.

Beispiel 9.L = w ∈ 0, 1∗ | w = 0n1n,n ∈ N ist nicht regulär. Beweis durch Widerspruch:Annnahme: L sei regulär. Sei p die Pumping-Zahl. Dann gibt es für w = 0p1p eineZerlegung w = xyz mit |y| > 0, |xy| 6 p, sodass gilt: xyiz ∈ L für alle i > 0.Aus |xy| 6 p folgt notwendigerweise y = 0l und x = 0r mit l > 0, r + l 6 p.

Page 30: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

24 1. Sprachen und Berechnungsmodelle

Betrachte nun das Wort w ′ = xy2z.Es gilt: w ′ = xy2z = 0r02l0p−(r+l)1p = 0r+2l+p−(r+l)1p = 0p+l1p /∈ L. Dies ist einWiderspruch zur Annahme, L ist also nicht regulär.

Beispiel 10.L = ww | w ∈ 0, 1∗Wähle w = 0p10p1 ∈ L und die Zerlegung w = xyz wie im Pumping-Lemma,|x| = r, |y| = l, l > 0, r+ l 6 p. Betrachte xy2z:xy2z = 0r02l0p−(r+l)10p1 = 0r+2l+p−r−l10p1 = 0l+p10p1. Da l+ p 6= p ist xy2z /∈ L.

Beispiel 11.Widersprüche mithilfe des Pumping-Lemmas lassen sich nicht nur durch „Auf-pumpen“ finden: Sei L = 0i1j | i, j ∈ N, i > j, p die Pumping-Zahl, w =

0p+11p und xyz eine Zerlegung von w wie im Pumping-Lemma. Dann ist xy0z =0p+1−|y|1p /∈ L, da |y| > 1 nach Voraussetzung.

1.2.6 Abschlusseigenschaften

Satz 1.25 (Abschlusseigenschaften von regulären Sprachen). Es seien L1,L2 regulä-re Sprachen. Dann sind auch

1. die Vereinigung L = L1 ∪ L2,

2. der Durchschnitt L = L1 ∩ L2,

3. das Komplement L = L1,

4. die Konkatenation L = L1 · L2 und

5. der kleenesche Abschluss L = L∗1

regulär.

Beweis. Zur Übung.

1.3 Kellerautomaten und kontextfreie Sprachen

Im letzten Kapitel wurde gezeigt, dass reguläre Sprachen und endliche Automa-ten gleich mächtig sind. Sie haben jedoch gewisse Beschränkungen: Die Sprache

L = w | w = 0n1n,n ∈ N

ist nicht regulär (vgl. Beispiel 9) und lässt sich nicht durch einen endlichen Au-tomaten akzeptieren. Umgangssprachlich könnte man diese Begrenzung folgen-dermaßen ausdrücken: Endliche Automaten können nicht zählen. Mit den kon-textfreien Sprachen und den Kellerautomaten stehen uns mächtigere Konzeptezur Verfügung, die nicht dieser Begrenzung unterliegen.

Page 31: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.3. Kellerautomaten und kontextfreie Sprachen 25

1.3.1 Kontextfreie Sprachen

Im Vergleich zu regulären Grammatiken können bei kontextfreien Grammatikenunter anderem links- und rechtlineare Produktionen gleichzeitig vorkommen.

Definition 1.26 (Kontextfreie Grammatik). Eine kontextfreie Grammatik G ist ein4-Tupel G = (Σ,V ,S,P) mit

1. dem endlichen Alphabet Σ der Terminalsymbole,

2. dem endlichen Alphabet V der Variablen mit V ∩ Σ = ∅,

3. dem Startsymbol S ∈ V und

4. der Menge von Produktionen P der Form u→ v mit u ∈ V und v ∈ (Σ∪ V)∗.

Eine solche Grammatik wird auch Grammatik vom Chomsky-Typ 2 genannt.

Beispiel 12.Eine kontextfreie Grammatik ist zum Beispiel G = (Σ,V , 〈Expr〉,P) mitΣ = a,×,+, (, ), V = 〈Expr〉, 〈Term〉, 〈Factor〉 und

P = 〈Expr〉 → 〈Expr〉+ 〈Term〉 | (〈Term〉) | 〈Term〉,〈Term〉 → 〈Term〉 × 〈Factor〉 | 〈Factor〉,〈Factor〉 → 〈Expr〉 | a

Eine Möglichkeit, die Anwendung der verschiedenen Regeln einer Grammatikzu einem bestimmten Wort darzustellen, ist der Ableitungsbaum. Seine Wurzelist das Startsymbol. Kindknoten entstehen sukzessive als Produkte der Produk-tionen. Die Blätter des Baums sind Terminalsymbole. Abbildung 1.7 zeigt einensolchen Baum beispielhaft. Der Ableitungsbaum zu einem Wort muss nicht ein-deutig sein.

1.3.2 Kellerautomaten / Pushdown Automata

Die kontextfreie Sprache L = w | w = 0n1n,n ∈ N lässt sich, wie wir bereitswissen, nicht mit endlichen Automaten erkennen. Ein mächtigeres Maschinen-modell stellen die Kellerautomaten dar, die lesend auf das Eingabewort zugreifenkönnen und weiterhin einen Kellerspeicher (Stack) besitzen, auf den lesend undschreibend zugegreiffen werden kann. Deterministische Kellerautomaten könnenL erkennen, die Sprache der Palindrome (L ′ = wxw | w ∈ Σ∗, x ∈ (Σ ∪ ε)) kannnur nicht-deterministisch erkannt werden. Dies liegt daran, dass der Kellerauto-mat sonst erkennen müsste, wenn er das Wort w gelesen hat. Nichtdeterministi-sche Kellerautomaten sind also echt mächtiger als deterministische.

Page 32: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

26 1. Sprachen und Berechnungsmodelle

〈Expr〉

〈Expr〉

〈Term〉

〈Factor〉

a +

〈Term〉

〈Term〉

〈Factor〉

a x

〈Factor〉

a

Abbildung 1.7: Ableitungsbaum für den Ausdruck a + a× a. Wir legen für dieAbleitung die Produktionsregeln aus Beispiel 12 zugrunde.

Information.

Ein Stack, auch Stapel(-) oder Kellerspeicher genannt, ist eine einfache Daten-struktur mit Zugriff nach dem Last-in-first-out-Prinzip (LIFO). Elemente kön-nen oben auf den Stack (top of stack) gelegt (push) oder herunter genommen(pop) werden, woraufhin sie gelesen werden können. Manche Implementie-rungen bieten auch eine Funktion, die das Lesen des obersten Elements (peek)erlaubt, ohne dass es vom Stack gepoppt und wieder gepusht werden muss.

Definition 1.27 (Kellerautomat). Ein (nichtdeterministischer) Kellerautomat (PDA,(N)PDA) ist ein 6-Tupel P = (Q,Σ, Γ , δ,q0, F) mit

• der endlichen Zustandsmenge Q,

• dem endlichen Eingabealphabet Σ,

• dem endlichen Stack-Alphabet Γ ,

• der Zustandsübergansfunktion δ : Q× (Σ∪ ε)× (Γ ∪ ε)→ 2(Q×Γ∪ε),

• dem Anfangszustand q0 ∈ Q und

• der Menge der akzeptierenden Zustände F ⊆ Q.

Ein PDA ist genau dann deterministisch, wenn |δ(q,a,b)|+ |δ(q, ε,b)| 6 1 für alleq ∈ Q, a ∈ Σ und b ∈ Γ gilt.

Page 33: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.3. Kellerautomaten und kontextfreie Sprachen 27

Endlicher Automat

.

.

.

Stack

Eingabewort

Lesekopf

Lese-/

Schreibkopf

Abbildung 1.8: Ein Kellerautomat besteht aus einem Eingabewort w, das vonlinks nach rechts abgearbeitet wird, einem Kellerspeicher, auf den lesend undschreibend zugegriffen werden kann, sowie einer Steuerung.

q0 q1

q2q3

ε, ε→ $

0, ε→ 0

1, ε→ 1

ε, ε→ ε

0, ε→ ε

1, ε→ ε

0, 0→ ε

1, 1→ ε

ε, $→ ε

Abbildung 1.9: Ein Kellerautomat, der L = wxw,w ∈ Σ∗, x ∈ Σ ∪ ε erkennt. EinZustandsübergang a,b → c bedeutet, dass bei Eingabe a das Zeichen b auf demStack durch c ersetzt wird. Um ein neues Zeichen c auf den Stack zu legen ver-wenden wir a, ε→ c, um das oberste Zeichen b zu entfernen a,b→ ε.

Abhängig vom Eingabe-Zeichen a, dem Symbol oben auf dem Stack γ und demaktuellen Zustand q geht δ(q,a,γ) = (q ′,γ ′) in den Zustand q ′ über und ersetztγ durch γ ′, wobei a,γ → γ ′ = ε erlaubt ist. Somit können Symbole auf den Stackgelegt oder von ihm heruntergenommen und Spontanübergänge realisiert wer-den.

Page 34: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

28 1. Sprachen und Berechnungsmodelle

Information.

Neben der Festlegung, dass ein Kellerautomat dann akzeptiert, wenn er ineinen akzeptierenden Zustand gerät, gibt es noch zwei weitere mögliche Fest-legungen:

• Ein PDA akzeptiert, sobald sein Stack leer ist.

• Ein PDA akzeptiert nur, wenn er in einen Haltezustand gerät und seinStack leer ist.

Diese Akzeptanzverhalten sind aber äquivalent (Übung).

Der PDA akzeptiert w = a1a2 . . . am (ai ∈ (Σ ∪ ε)), wenn es eine Abfolge vonZuständen (r0, r1, . . . , rm) und eine Abfolge von Wörtern s0, s1, . . . , sm ∈ Γ∗ mitden folgenden Bedingungen gibt:

1. r0 = q0 und s0 = ε.

2. Für i = 0, . . . ,m− 1 ist (ri+1, l) ∈ δ(ri,ai+1,k) mit si = kt und si+1 = lt fürbeliebige k, l ∈ (Γ ∪ ε) und t ∈ Γ∗.

3. rm ∈ F.

Abbildung 1.9 zeigt ein Beispiel für einen Kellerautomaten.

Satz 1.28. Die kontextfreien Sprachen sind genau die von NPDAs erkannten Sprachen.

Bevor wir diesen Satz beweisen, stellen wir fest, dass wir zu jedem PDA P einenPDA P ′ angeben können, der dieselbe Sprache erkennt und

1. der nur einen einzigen akzeptierenden Zustand qaccept hat,

2. dessen Stack leer ist, wenn er im Zustand qaccept ist und

3. dessen Zustandsübergänge alle entweder ein Zeichen pushen oder poppen.

Dies lässt sich erreichen, indem man

1. ein neues Zeichen „“ zum Stack-Alphabet hinzufügt,

2. einen neuen Finalzustand qaccept einführt und

3. jeden Übergang δ(qi,a,S) 3 (qj, T) mit S, T 6= ε durch zwei Übergängeδ(qi,a,S) 3 (qi,j,S,T , ε) und δ(qi,j,a,S,T , ε, ε) 3 (qj, T) ersetzt. Dabei ist qi,j,a,S,Tein neuer Zustand ist. Jeder Zustandsübergang δ(qi,a, ε) 3 (qj, ε) wirddurch zwei Übergänge δ(qi,a, ε) 3 (qi,j,a,R) und δ(qi,j,a, ε,R) 3 (qj, ε) ersetzt,wobei qi,j,a ein neuer Zustand und R ein neues Zeichen des Eingabealpha-bets Σ ist.

Page 35: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.3. Kellerautomaten und kontextfreie Sprachen 29

Beweis. „⇐“Sei P = (Q,Σ, Γ , δ,q0, F) ein so konstruierter Automat. Wir definieren die kontext-freie Grammatik G ′ = (Σ ′,V ′,S ′,P ′) mit Σ ′ = Σ, V ′ = Apq | p,q ∈ Q, S = Aq0qaccept

und den Produktionen P ′, wobei P ′

• für alle p,q, r, s ∈ Q, t ∈ Γ und a,b ∈ Σ ∪ ε die Regel Apq → aArsb genaudann enthält, wenn δ(p,a, ε) 3 (r, t) und δ(s,b, t) 3 (q, ε),

• für alle p,q, r ∈ Q die Regel Apq → AprArq und

• für alle p ∈ Q die Regel App → ε enthält.

Lemma 1.29. Apq ⇒∗ x (x ∈ Σ∗) gilt genau dann, wenn P bei Lesen von x, ausgehendvon Zustand p und leerem Stack, den Zustand q erreichen kann, wobei bei Erreichen vonq der Stack wieder leer ist.

Beweis. Beide Richtungen der Behauptung lassen sich per Induktion zeigen:„⇒“ Induktion über die Anzahl der Ableitungsschritte.

1. Induktionsanfang: Ist k = 1, so ist x = ε. Es findet also kein Zustandswech-sel von P statt, weshalb sich der Stack nicht verändert. Dies entspricht derProduktion App → ε.

2. Induktionsannahme: Für alle Ableitungen Apq ⇒∗ xmit kAbleitungsschrit-ten gilt Lemma 1.29.

3. Induktionsschritt: Ist k > 1, so ist die erste Regelanwendung der Ableitungentweder von der Form Apq → aArsb oder Apq → AprArq.

• Ist die erste Produktion Apq → aArsb, so ist x = ayb, wobei Ars ⇒∗ yeine Ableitung der Länge k ist. Nach Induktionsannahme kann P alsobei Lesen von ymit leerem Stack von r nach s überführt werden. NachKonstruktion der Produktion Apq → aArsb gilt aber, dass es ein t ∈Γ gibt, sodass δ(p,a, ε) 3 (r, t) und δ(s,b, t) 3 (q, ε). Also erhält dieAbleitung Apq ⇒∗ x den leeren Stack.

• Ist die erste Produktion Apq → AprArq, so ist x = yz mit Apr ⇒∗ y undArq ⇒∗ z. Die beiden letzten Ableitungen haben jeweils Länge k, alsotrifft für sie die Induktionsannahme zu und es gilt, dass P bei Lesenvon y mit leerem Stack von p nach r und bei Lesen von z mit leeremStack von r nach q überführt werden kann. Insgesamt also kann P beiLesen von x = yz mit leerem Stack von p nach q überführt werden.

„⇐“Induktion über die Anzahl der Zustandsübergänge. Weiterhin ist nach Konstruk-tion k = 2n für ein n ∈ N0.

1. Induktionsanfang: Ist k = 0, dann bleibt P im Zustand p und es gilt notwen-digerweise x = ε. Dazu passt die Produktion App → ε ∈ P ′, also App ⇒∗ x.

Page 36: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

30 1. Sprachen und Berechnungsmodelle

2. Induktionsannahme: Für das Erreichen von q von p in k Schritten beim Le-sen von x gilt Lemma 1.29.

3. Induktionsschritt: Ist k > 1, so bleibt der Stack während der Berechnungvon P entweder immer gefüllt oder er wird irgendwann zwischendurchleer.

• Im ersten Fall (Stack wird zwischendurch nie leer) muss das beim ers-ten Zustandsübergang auf den Stack gepushte Zeichen t im letztenSchritt wieder entfernt werden. Zerlegen wir also x = ayb. Der Nach-folgezustand von p sei r, der vorletzte Zustand sei s. Es gibt also eint ∈ Γ , sodass δ(p,a, ε) 3 (r, t) und δ(s,b, t) 3 (q, ε). Also gibt es aucheine Produktion Apq → aArsb in P ′. Da P bei Lesen von y mit leeremStack in maximal k Schritten von r nach s gelangt, gilt nach Indukti-onsannahme Ars ⇒∗ y, insgesamt also Apq ⇒∗ x.

• Im zweiten Fall (Stack wird zwischendurch leer) erreicht P irgendwanneinen Zustand rmit leerem Stack. Liest P zwischen p und r das Wort y,so können wir x = yz zerlegen. P erreicht also jeweils von p bei Lesenvon y den Zustand rmit leerem Stack und von Zustand r aus bei Lesenvon z den Zustand qmit leerem Stack. Es gilt alsoApr ⇒∗ y undArq ⇒∗z, wobei die beiden Teilableitungen mit jeweils k Berechnungsschrittenvon P durchgeführt werden und somit die Induktionsannahme gilt. Daes in P ′ die Produktion Apq → AprArq gibt, gilt insgesamt Apq ⇒∗ x.

„⇒“Für eine kontextfreie Grammatik G = (Σ,V ,S,P) mit L = L(G) konstruieren wireinen NPDA, der genau L erkennt, indem für w ∈ L überprüft wird, ob es eineFolge von Ableitungen gibt, für die S⇒∗ w gilt. Dazu wird in jedem Schritt nicht-deterministisch die „richtige“ Produktion gewählt. Zur Einfachheit erlauben wir,beliebig lange Wörter in einem Schritt auf den Stack zu pushen. Dies erweitertnicht die Mächtigkeit des PDA.

Information.

Beim Angeben von Zustandsübergängen mit Wörtern existiert folgende Kon-vention: Der Übergang δ(qi,a, xyz) 3 (qj, xyza) bedeutet, dass das Zeichen adurch das Wort xyza ersetzt wird, wobei oben auf dem Stapel das Zeichen xliegt.

Page 37: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.3. Kellerautomaten und kontextfreie Sprachen 31

Der so entstehende PDA arbeitet wie folgt:

1. Lege das Trennzeichen $ und das Startsymbol S auf den Stack.

2. Wiederhole

(a) Liegt oben auf dem Stack ein Variablensymbol A ∈ V , wähle nichtde-terministisch eine Produktion A → v ∈ P und ersetze A auf dem Stackdurch v.

(b) Liegt oben auf dem Stack ein Terminalsymbol a ∈ Σ, lies das nächsteEingabesymbol a ′ und vergleiche es mit a. Wiederhole diesen Schritt,falls a = a ′.

(c) Liegt oben auf dem Stack das Trennzeichen $, akzeptiere.

q0

qloop

qaccept

ε, ε→ S$

ε,A,w für A→ v ∈ Pa ′,a, ε für a = a ′ ∈ Σ

ε, $→ ε

Abbildung 1.10: Schema des PDA aus dem Beweis für Satz 1.28.

1.3.3 Die Chomsky-Normalform

Um leichter algorithmisch mit kontextfreien Grammatiken arbeiten zu können,kann die Chomsky-Normalform benutzt werden.

Definition 1.30 (Chomsky-Normalform). Eine Grammatik G = (Σ,V ,S,P) ist inChomsky-Normalform, wenn jede Produktion der Form

• A→ BC

• A→ a

• S→ ε, falls ε ∈ L(G)

ist, mit A ∈ V , B,C ∈ V \ S, a ∈ Σ.

Page 38: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

32 1. Sprachen und Berechnungsmodelle

Satz 1.31. Jede kontextfreie Grammatik lässt sich in Chomsky-Normalform bringen.

Beweis. Es sei G = (Σ,V ,S,P) eine Grammatik und L = L(G) die von ihr erzeugteSprache. Weiterhin seien ui ∈ (V ∪ Σ) (i ∈ N), v ∈ (V ∪ Σ)+ und a ∈ Σ.

1. Wir führen ein neues Startsymbol S0 und die Produktion S0 → S ein. Fallsε ∈ L, fügen wir die Produktion S0 → ε hinzu.

2. Es sei V ′ die Menge aller Variablen, die auf ε abbilden. Für alle Produktio-nen der Form A → ε,A 6= S0 (ε-Produktionen) wird A zu V ′ hinzugenom-men. Für alle Variablen in V ′ wird geprüft, ob durch ihr Ersetzen auf derrechten Seite von Produktionen neue Produktionen der Form X→ ε entste-hen. Diese Variablen X werden zu V ′ hinzugefügt, und das ganze solangewiederholt, bis keine neuen ε-Produktionen entstehen. Für jede Produkti-on, in der A ∈ V ′ auf der rechten Seite vorkommt, fügen wir eine neue Pro-duktion hinzu, bei der A gestrichen wurde. Jetzt können alle ProduktionenA→ ε,A ∈ V ′ entfernt werden.

Beispiel: R → u1Au2Au3 liefert die neuen Produktionen R → u1u2Au3,R →u1Au2u3,R→ u1u2u3.

3. Nun werden alle Produktionen der Form A → B entfernt. Für eine RegelB → v nehmen wir dazu eine Produktion A → v hinzu, es sei denn A → v

wurde schon einmal entfernt.

4. Zuletzt werden alle verbliebenen Regeln in die Form A → BC und A → a

überführt.A → u1u2 . . . uj(j > 3) wird durch die Produktionen A → u1A1,A1 →u2A2, . . . , Aj−2 → uk−1uk ersetzt, wobei Ai neu eingeführte Variablen sind.Alle uk ∈ Σ aus den eben erstellten Regeln Al werden durch Uk ersetzt undfalls notwendig eine Produktion Uk → uk hinzugefügt.

Information.

Dieser konstruktive Beweis lässt sich direkt als Umformungsalgorithmus nut-zen.

Beispiel 13.Sei G = (Σ,V ,S,P) eine kontextfreie Grammatik mit Σ = a,b, c, V = S,A,B und

P = S→ AB | AaA | A | BBB,A→ c | ε,B→ b

Page 39: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.3. Kellerautomaten und kontextfreie Sprachen 33

1. Schritt: Einführen eines neuen Startsymbols. Wir stellen fest: ε ∈ L(G).

P = S0 → S | ε,S→ AB | AaA | A | BBB,A→ c | ε,B→ b

2. Schritt: Entfernen der ε-Produktionen:

P = S0 → S | ε,S→ AB | AaA | B | aA | Aa | a | A | BBB,A→ c,B→ b

3. Schritt: Entfernen der Kettenregeln:

P = S0 → AB | AaA | b | aA | Aa | a | c | BBB | ε,S→ AB | AaA | b | aA | Aa | a | c | BBB,A→ c,B→ b

4. Schritt: Überführen in Chomsky-Normalform:

P = S0 → AB | AS1 | b | VaA | AVa | a | c | BS2 | ε,S→ AB | AS1 | b | VaA | AVa | a | c | BS2,A→ c,B→ b,S1 → VaA,S2 → BB,Va → a

1.3.4 Der Cocke-Younger-Kasami-Algorithmus

Während das Wortproblem für reguläre Sprachen sehr einfach entschieden wer-den kann, ist dies für kontextfreie Sprachen nicht so einfach. Insbesondere wärees denkbar, dass dies nicht effizient entscheidbar ist. Der Cocke-Younger-Kasami-Algorithmus gibt eine effiziente Möglichkeit an, das Wortproblem zu lösen.

Satz 1.32. Für eine kontextfreie Grammatik G = (Σ,V ,S,P) in Chomsky-Normalformund ein Wort w ∈ Σ+ mit |w| = n entscheidet der Cocke-Younger-Kasami-Algorithmus(CYK-Algorithmus) in der Zeit O(|P| ·n3), ob w ∈ L(G).

Korollar 1.33. Das Wortproblem für kontextfreie Sprachen lässt sich in Polynomialzeitlösen.

Page 40: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

34 1. Sprachen und Berechnungsmodelle

Wir entscheiden das Wortproblem, indem wir berechnen, ob es für ein Wort w =

a1 . . . an, ai ∈ Σ eine Folge von Ableitungen ausgehend von S gibt, die w erzeugt.Dazu berechnen wir Mengen von Variablen aus Vij ⊆ V (j > i), wobei Vij alleVariablen enthält, aus denen sich das Teilwort ai . . . aj (in mehreren Schritten)ableiten lässt, also Vij = A ∈ V | A ⇒∗ ai . . . aj. Wir erstellen eine Tabelle (sieheTabelle 1.1), in der wir mit aufsteigendem l = j− i die Vij eintragen.

Vij 1 2 . . . n

1 V11 V12 . . . V1n2 V22 . . . V2n... . . . ...n Vnn

Tabelle 1.1: Schema für den CYK-Algorithmus mit Zeilenindex i und Spaltenin-dex j.

Beweis. Ausgehend von l = 0 (also i = j) tragen wir in die Diagonaleinträge Vkkalle Produktionen ein, aus denen man ak ableiten kann.Für 1 6 l < n gilt A ⇒∗ ai . . . aj genau dann, wenn es ein k (i 6 k < j) undeine Produktion A → BC mit B ∈ Vik,C ∈ Vk+1,j gibt (anschaulich bedeutet das,dass wir ausgehend von Vij alle bereits ausgefüllten Tabelleneinträge links undunterhalb betrachten, die zusammen l + 1 Zellen von Vij entfernt sind). DiesenSchritt führen wir für aufsteigendes l insgesamt n− 1-mal durch.Die Berechnung betrachtet also für jedes Vij |P| viele Produktionen und höchstensn− 1Werte für k. Es werden alsoO(n2) Mengen Vij mit einer LaufzeitkomplexitätvonO(|P| ·n) berechnet. Insgesamt beträgt die Laufzeitkomplexität alsoO(|P| ·n3).Ist S ∈ V1n, gibt es eine Folge von Ableitungen, diew erzeugt, und es istw ∈ L.

Beispiel 14.

P = S→ AB | BC,A→ BA | a,B→ CC | b,C→ AB | a

Vij 1 2 3 4 5 61 B ∅ A S, C B A, S2 B A, S S, C B A, S3 A, C S, C B A, S4 B A, S ∅5 A, C B6 A, C

Abbildung 1.11: Beispiel: w = bbabaa.

1.3.5 Das Pumping-Lemma für kontextfreie SprachenEbenso wie mit dem Pumping-Lemma für reguläre Sprachen kann mit dem Pumping-Lemma für kontextfreie Sprachen überprüft werden, ob es sich bei einer gegebe-nen Sprache um eine kontextfreie handelt. Analog zu regulären Sprachen wirdnur ein notwendiges Kriterium geliefert, kein hinreichendes.

Page 41: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.3. Kellerautomaten und kontextfreie Sprachen 35

Satz 1.34 (Pumping-Lemma für kontextfreie Sprachen). Ist L eine kontextfreie Spra-che, dann gibt es eine Zahl p, so dass für jedes Wortw ∈ Lmit |w| > pmit der Zerlegungw = uvxyz folgende Bedingungen gelten:

1. Für jedes i > 0 ist uvixyiz ∈ L,

2. |vy| > 0 und

3. |vxy| 6 p.

Beweis. Es sei G = (Σ,V ,S,P) eine kontextfreie Grammatik für die Sprache L undb die größte Anzahl von Symbolen auf der rechten Seite einer Produktion (beiChomsky-Normalform ist b 6 2). Also hat jeder Knoten im Ableitungsbaumhöchstens b Kinder. Mit Höhe h hat der Baum höchstens bh Blätter. Wir setzenp = b|V |+1.

Sei nun s ∈ L mit |s| > p und τ ein Ableitungsbaum mit der kleinsten Anzahl vonKnoten (wenn es mehrere gibt, wähle einen mit der geringsten Anzahl von Kno-ten). Wegen |s| > p = b|V |+1 hat τmindestens die Höhe |V |+ 1 und der längste Pfadin τ hat Länge > |V |+ 1. Wir betrachten diesen Pfad. Er enthält > |V |+ 1 Variablen(da höchstens ein Terminalsymbol auf dem Pfad ist). Wegen des Schubfachprin-zips wiederholt sich mindestens eine Variable. Wenn es mehrere Wiederholungengibt, betrachten wir im Folgenden die Wiederholung, die sich am weitesten untenim Baum befindet, also in den untersten |V |+ 1 Variablen.

Wir zerlegen s in uvxyz gemäß folgender Abbildung:

S

u v y z

R

x

R

Abbildung 1.12: Ableitungsbaum für s = uvxyz. Ist uvxyz ∈ L, dann auch uxz ∈ L.

u x z

S

R

Abbildung 1.13: Statt aus dem oberen R das Teilwort vxy abzuleiten, könnten wirdirekt x ableiten (wie es beim unteren R geschieht). Also ist auch uxz ∈ L.

Page 42: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

36 1. Sprachen und Berechnungsmodelle

Ebenso können wir aus dem unteren R statt x auch vxy ableiten, wie wir esbei dem oberen R tun, und es gilt uv2xy2z ∈ L. Durch Wiederholung gilt auchuvixyiz ∈ L∀i ∈ N: S

u v y z

R

v x y

R

R

Abbildung 1.14: Ist uvxyz ∈ L, dann auch uvixyiz ∈ L.

Es sind jedoch Bedingungen einzuhalten, damit unsere Argumentation richtig ist.

Wären v und y leer, würde im Ableitungsbaum R → R abgeleitet und es gäbeeinen kleineren Ableitungsbaum, der s erzeugt. Das steht im Widerspruch zu derWahl des Ableitungsbaums. Deshalb fordern wir |vy| > 0.

Betrachten wir weiterhin das Vorkommen von R in dem Ableitungsbaum. So wiewir R gewählt haben, sind beide Vorkommen in den unteren |V |+ 1 Variablen aufdem Pfad. (Wir betrachten den längsten Pfad im Baum.) Der Teilbaum, in dem R

das Teilwort vxy erzeugt, hat höchstens die Höhe |V |+ 1. Ein Baum dieser Höheerzeugt ein Wort der Länge 6 b|V |+1 = p. Deshalb fordern wir, dass |vxy| 6 p.

Beispiel 15.Annahme: L = anbncn | n ∈ N ist kontextfrei. Dann gibt es ein n ∈ N, sodass|anbncn| > p. Für die Zerlegung w = uvxyz,w ∈ L beobachtet man, dass |v| und|y| höchstens 1 sind, da sonst nicht einmal die Abschwächung uvnxynz ∈ a∗b∗c∗

gelten würde. Insgesamt werden also höchstens zwei Symbole gepumpt, sodasssich für alle n > 1 ein Widerspruch ergibt.

1.3.6 AbschlusseigenschaftenKorollar 1.35. Seien i, j ∈ N. L1 = ajbici und L2 = aibicj sind kontextfrei (leichteÜbung), der Schnitt L1 ∩L2 aber nicht (vgl. Beispiel 15). Die kontextfreien Sprachen sindalso nicht bezüglich Durchschnitt abgeschlossen.

Satz 1.36 (Abschlusseigenschaften von kontextfreien Sprachen). Es seien L1,L2kontextfreie Sprachen. Dann sind auch

1. die Vereinigung L = L1 ∪ L2,

2. die Konkatenation L = L1 · L2 und

3. der kleenesche Abschluss L = L∗1

kontextfrei.

Beweis. Zur Übung.

Page 43: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.4. Turing-Maschinen und weitere Sprachen 37

1.4 Turing-Maschinen und weitere Sprachen

1.4.1 Kontextsensitive Sprachen

Definition 1.37 (Kontextsensitive Grammatik). Eine kontextsensitive Grammatik Gist ein 4-Tupel G = (Σ,V ,S,P) mit

1. dem endlichen Alphabet Σ der Terminalsymbole,

2. dem endlichen Alphabet V der Variablen mit V ∩ Σ = ∅,

3. dem Startsymbol S ∈ V und

4. der Menge von Produktionen P der Form u → v mit u ∈ V+, v ∈ ((V \ S) ∪ Σ)+und |u| 6 |v| oder S→ ε.

Eine solche Grammatik wird auch Grammatik vom Chomsky-Typ 1 genannt.

Information.

Für die Einschränkungen an die Produktionen der From u→ v ist unter ande-rem folgende Variante möglich:

• u → v ist von der Form αAβ → αγβ oder S → ε, wobei α,β,γ ∈ ((V \

S)∗ ∪ Σ) und γ 6= ε.

Man überzeugt sich leicht, dass diese Definition äquivalent zu der in Definiti-on 1.37 ist.

Um später aus eine kontextsensitiven Grammatik G leichter einen Automaten zukonstruieren, der dieselbe Sprache erkennt, die G beschreibt, kann man sie wiefolgt umformen.

Satz 1.38. Zu jeder kontextsensitiven Grammatik G = (Σ,V ,S,P) gibt es eine sprach-äquivalente Grammatik, deren Produktion der Form S → a,A → a mit a ∈ Σ (oderS→ ε) oder αAβ→ αyβ mit α,β,y ∈ V∗,y 6= ε,A ∈ V .

α,β,y ∈ V∗ ist keine Einschränkung, da sonst in Produktionen alle α ∈ Σ durch eineneue Variable Aa ersetzt werden können und man die Produktion um Aa → a erweiternkann.

Page 44: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

38 1. Sprachen und Berechnungsmodelle

Beweis. Ersetze alle Produktionen A1 . . . Am → B1 . . . Bn aus V+ × V+ (beachte,dass m 6 n) durch:

A1 . . . Am → C1A2 . . . Am

C1A2 . . . Am → C1C2A3 . . . Am

...C1 . . . Cm−1Am → C1 . . . Cm−1Bm . . . Bn

C1 . . . Cm−1Bm . . . Bn → C1 . . . Cm−2Bm−1 . . . Bn

...C1B2 . . . Bn → B1B2 . . . Bn

Die Grammatik ist dann von der gewünschten Form und erzeugt dieselbe Spra-che.

1.4.2 Sprachen vom Chomsky-Typ 0

Falls keine Anforderungen an die Form der Produktionen gestellt werden, er-halten wir die allgemeinste Klasse von Grammatiken, die den Chomsky-Typ 0charakterisieren.

Definition 1.39 (Grammatik vom Chomsky-Typ 0). Eine Grammatik G vom Chom-sky-Typ 0 ist ein 4-Tupel G = (Σ,V ,S,P) mit

1. dem endlichen Alphabet Σ der Terminalsymbole,

2. dem endlichen Alphabet V der Variablen mit V ∩ Σ = ∅,

3. dem Startsymbol S ∈ V und

4. der Menge von Produktionen P ⊆ (V ∪ Σ)∗V(V ∪ Σ)∗ × (V ∪ Σ)∗.

Eine solche Grammatik wird auch semi-entscheidbar oder rekursiv aufzählbar ge-nannt.

Page 45: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.4. Turing-Maschinen und weitere Sprachen 39

1.4.3 Turing-Maschinen

Das Maschinenmodell für Grammatiken vom Chomsky-Typ 0 und Chomsky-Typ 1 sind Turing-Maschinen, wobei diese, ähnlich den Produktionen, einge-schränkt sind (oder eben nicht).

Band. . . . . .

Lese-/Schreibkopf

Programm

Abbildung 1.15: Skizze einer Turing-Maschine. Das Programm steuert einenLese-/Schreibkopf auf einem unendlich langen Band.

Definition 1.40 (Turing-Maschine). Eine Turing-Maschine ist ein 7-Tupel M =

(Q,Σ, Γ , δ,q0,qaccept,qreject) mit

1. endlicher Zustandsmenge Q,

2. endlichem Eingabealphabet Σ ohne das Blank-Symbol ,

3. einem endlichen Bandalphabet Γ mit (Σ∪ ) ⊆ Γ ,

4. einer Übergangsfunktion

(a) δ : Q× Γ → Q× Γ × L,R,N bei deterministischen Turing-Maschinen,

(b) δ : Q× Γ → 2(Q×Γ×L,R,N) bei nichtdeterministischen Turing-Maschinen,

5. einem Startzustand q0 ∈ Q,

6. einem akzeptierenden Zustand qaccept ∈ Q und

7. einem ablehnenden Zustand qreject ∈ Q.

Information.

Eine Turing-Maschine kann auch mit einer akzeptierenden Zustandsmenge de-finiert werden, allerdings ist dies äquivalent zur obigen Definition. Alle akzep-tierenden Zustände können per ε-Übergang auf einen akzeptierenden Zustandgeleitet werden.

Beispiel 16.Das Programm der Turing-Maschine in Abbildung 1.16 erkennt die SpracheL = w ∈ a,b, c∗ | |w|a − |w|c = |w|b.

Page 46: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

40 1. Sprachen und Berechnungsmodelle

q0 q1

q2 q3

q4

qr

qa: ,R

a : a,Lb : b,Lc : c,L⊥ : ⊥,L

: ,L

a : ⊥,L

b : b,Rc : c,R⊥ : ⊥,R

: ,R

a : a,Lb : b,Lc : c,L⊥ : ⊥,L

: ,N

a : a,R⊥ : ⊥,R

b : ⊥,Lc : ⊥,L

: ,N

b : b,Nc : c,N

⊥ : ⊥,L

Abbildung 1.16: Automat einer Turing-Maschine. Bei einem Übergang x : y,Zwird das Zeichen x ∈ Γ durch y ∈ Γ ersetzt und der Kopf in Richtung Z ∈ L,R,N

bewegt.

Satz 1.41. Zu jeder nichtdeterministischen Turing-Maschine existiert eine äquivalentedeterministische Turing-Maschine.

Beweis. Zur Übung.

Zu Beginn der Ausführung einer Turing-Maschine wird ihre Eingabe w auf dasBand geschrieben und der Kopf auf dem ersten Zeichen positioniert. Die Berech-nung einer Turing-Maschine lässt eine Folge von Konfigurationen (also aktuellerZustand, Position des Kopfs und Inhalt des Bandes) entstehen. Die Startkonfigu-ration einer Turing-Maschine ist q0w mit w ∈ Σ∗, der Kopf derTuring-Maschine befindet sich also über dem ersten Symbol vonw. Für eine Kon-figuration uaqi bv führt δ(qi,b) = (qj, c,R) die Turing-Maschine also in den Zu-stand uacqj v über.

Eine Berechnung ist also eine Folge von Konfigurationen. Eine Eingabe wird ak-zeptiert (abgelehnt), wenn der Zustand der letzten Konfiguration qaccept (qreject)ist. In diesem Fall hält die Turing-Maschine.

Definition 1.42 (Ausgabe einer Turing-Maschine). Wir nennen den Bandinhalt derTuring-Maschine, nachdem diese gehalten hat, ihre Ausgabe. Hält eine Turing-Maschi-ne M nach der Eingabe von w, bezeichnet M(w) ihre Ausgabe.

Definition 1.43 (Sprache einer Turing-Maschine). Die Sprache der vonM akzeptier-ten Wörter nennen wir L(M).

Page 47: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.4. Turing-Maschinen und weitere Sprachen 41

1 0 1 1 0 1 1 1 1 . . . Ein-/Ausgabeband

q7

Abbildung 1.17: Eine Turing-Maschine in der Konfiguration 1011 q7 01111.

Definition 1.44 (Linear beschränkte Turing-Maschine). Sei k ∈ N beliebig, aber fest.Eine linear beschränkte Turing-Maschine (LBA, linear bounded automaton) ist eineTuring-Maschine, die für eine Eingabe der Länge n nur k ·n Zellen des Bands (inklusiveder Eingabe) benutzen darf.

Information.

In der Literatur sind auch folgende Definitionen geläufig:

• Ein LBA darf nur den Teil des Bandes benutzen, der durch die Einga-be beschrieben ist (oder höchstens noch das erste Blank-Symbol rechtsneben der Eingabe).

• Ein LBA darf nur den Teil des Bandes benutzen, der durch die Eingabebeschrieben ist, sowie höchstens ein Zeichen rechts oder links davon.

Man überzeugt sich leicht davon, dass alle drei Definitionen zueinander äqui-valent sind und durch eine Änderung des Bandalphabets ineinander überführtwerden können.

Mysterium.

DSPACE(n) bezeichnet die Menge der Probleme, die von einem determinis-tischen LBA entschieden werden können. Analog ist NSPACE(n) die Mengeder Probleme, die von einer nichtdeterministischen LBA entschieden werdenkönnen. Es ist nicht bekannt, ob DSPACE(n) = NSPACE(n).

Anders ausgedrückt: Es ist unbekannt, ob nichtdeterministische LBA mächti-ger sind als deterministische.

Satz 1.45. Die Sprachen, die von Grammatiken vom Chomsky-Typ 0 erzeugt werden,werden von Turing-Maschinen erkannt.

Beweis. Übung.

Satz 1.46. Die von LBAs entschiedenen Sprachen sind genau die Sprachen vom Chom-sky-Typ 1.

Beweis. „⇐“Konstruiere zu einer Grammatik G = (Σ,V ,S,P) vom Chomsky-Typ 1 einen LBA,die wie folgt arbeitet:

Page 48: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

42 1. Sprachen und Berechnungsmodelle

• M wählt nichtdeterministisch ein α→ β ∈ P mit β 6= ε.

• M sucht ein beliebiges (nichtdeterministisch das „richtige“) β auf dem Bandund ersetzt β durch α.

• Falls |α| < |β| wird die Eingabe „zusammengeschoben“.

• ...

• Wenn das Band nur noch S enthält, gehtM in den akzeptierenden Zustand.

• Ist das band leer und ε ∈ L(G), geht M ebenfalls in den akzeptierendenZustand. Offenbar ist M ein LBA und L(M) = L(G).

„⇒“Sei M ein LBA. Konstruiere eine kontextsensitive Grammatik G, die L(M) \ N

erzeugt, wobei N = α ∈ L(M) | |α| 6 1

Konvention: (. . . ) stehe für ein Nichtterminalsymbol aus V , weiterhin seien a,b, c, x,y ∈Σ.

1. Die Produktionen

S→ A(aa )

A→ A(aa) | (q0aa), (a ∈ Σ)

erzeugen (q0a1a1)(a2a2)(a3a3) . . . (anan ) mit n > 2

Dies entspricht allen möglichen Startkonfigurationen (die Symbolverdopp-lung ist eine Merkhilfe.)

2. Die Übergänge

(a) δ(qi, x) = (qj,y,R)

(b) δ(qi, x) = (qj,y,L)

(c) δ(qi, x) = (qj,y,N)

werden durch folgende Produktionen simuliert:

(a)

(qi xa)(bc)→ (ya)(qj bc)

(qi xa)(bc )→ (ya)(qj bc )

(qi xa )→ (yaqj )

(b) und c) analog.

Page 49: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.4. Turing-Maschinen und weitere Sprachen 43

3. Die Produktionen

(ab)→ b

(ab )→ b

(qi ab)→ b für qi akzeptierend(qi ab )→ b für qi akzeptierend(abqi )→ b für qi akzeptierend

erzeugen α wenn α ∈ L(M)

4. N ist endlich und daher insbesondere kontextsensitiv. Damit ist (L(M) \N)∪N genau dann kontextsensitiv, wenn L(M) kontextsensitiv ist.

1.4.4 Abschlusseigenschaften

Satz 1.47 (Abschlusseigenschaften von kontextsensitiven Sprachen). Es seien L1und L2 kontextsensitive Sprachen. Dann sind auch

1. die Vereinigung L = L1 ∪ L2,

2. der Durchschnitt L = L1 ∩ L2,

3. das Komplement L = L1,

4. die Konkatenation L = L1 · L2 und

5. der kleenesche Abschluss L = L∗1

kontextsensitiv.

Beweis. Zur Übung.

Satz 1.48 (Abschlusseigenschaften von rekursiv aufzählbaren Sprachen). Es seienL1 und L2 Sprachen vom Chomsky-Typ 0. Dann sind auch

1. die Vereinigung L = L1 ∪ L2,

2. der Durchschnitt L = L1 ∩ L2,

3. die Konkatenation L = L1 · L2 und

4. der kleenesche Abschluss L = L∗1

vom Chomsky-Typ 0.

Beweis. Zur Übung.

Page 50: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

44 1. Sprachen und Berechnungsmodelle

1.5 Zusammenfassung

1.5.1 Die Chomsky-Hierarchie

Zusammenfassend kann aus den vorgestellten Sprachen eine Hierarchie erstelltwerden, wobei wie in Abschnitt 1.2 beschrieben eine echte Teilmengenbeziehungbesteht.

Definition 1.49 (Chomsky-Hierarchie).

1. Grammatiken ohne Einschränkungen heißen Grammatiken vom Chomsky-Typ 0oder rekursiv aufzählbar oder semi-entscheidbar.

2. Grammatiken mit Produktionen u → v mit u ∈ V+, v ∈ ((V \ S) ∪ Σ)+ und|u| 6 |v| (oder S → ε) heißen kontextsensitiv oder Grammatiken vom Chomsky-Typ 1.

3. Grammatiken mit Produktionen A → v mit A ∈ V und v ∈ Σ ∪ V∗ heißenkontextfrei oder Grammatiken vom Chomsky-Typ 2.

4. Grammatiken mit Produktionen A → v mit A ∈ V und v = ε oder v = a oderv = aB mit a ∈ Σ und B ∈ V heißen regulär oder Grammatiken vom Chomsky-Typ 3.

Es gilt also: Chomsky-3⊂ Chomsky-2⊂ Chomsky-1⊂ Chomsky-0 (vgl. Abbildung 1.18).

Chomsky-2Kontextfrei

Chomsky-1Kontextsensitiv

Chomsky-0Rekursiv aufzählbar

Chomsky-3Regulär

Abbildung 1.18: Die Chomsky-Hierarchie.

Page 51: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

1.5. Zusammenfassung 45

1.5.2 Überblick über Eigenschaften von Grammatiken

Im Folgenden sind alle Eigenschaften von Grammatiken, die in den vorangegan-genen Kapiteln vorgestellt wurden, in einer Tabelle zusammengefasst:

Cho

msk

y-Ty

p3

Cho

msk

y-Ty

p2

Cho

msk

y-Ty

p1

Cho

msk

y-Ty

p0

Nam

ere

gulä

rko

ntex

tfre

iko

ntex

tsen

siti

vre

kurs

ivau

fzäh

lbar

Aut

omat

DEA

PDA

LBA

Turi

ng-M

asch

ine

Ents

chei

dbar

XX

X-

Form

der

Prod

ukti

onen

A→v

mitv=ε,

A→

(Σ∪V)∗

u→v

mitu∈V+

,|u|6

|v|,

belie

big

v=a

oderv=aB

v∈((V\S)∪Σ)+

oderS→ε

Abg

esch

loss

enun

ter·

XX

XX

Abg

esch

loss

enun

ter

X-

X-

Abg

esch

loss

enun

ter∪

XX

XX

Abg

esch

loss

enun

ter∩

X-

XX

Abg

esch

loss

enun

ter∗

XX

XX

Page 52: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

46 1. Sprachen und Berechnungsmodelle

Page 53: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

2. Berechenbarkeitstheorie

Nachdem wir mehrere Maschinenmodelle kennengelernt haben, stellt sich dieFrage nach der Mächtigkeit dieser Modelle. Darüber macht die Church-Turing-These eine Aussage, von der es zwei Varianten gibt. Die einfache Church-Turing-These lautet:

Satz 2.1 (Einfache Church-Turing-These). Jedes intuitiv realisierbare Rechnermodellist von einer Turing-Maschine simulierbar.

Es wird allgemein angenommen, dass diese These gilt und die Gültigkeit die-ser These rechtfertigt es, dass wir unsere Betrachtungen auf Turing-Maschinenbeschränken. Es ist allerdings noch nichts über die Effizienz dieser Simulationgesagt. Das heißt vor allem, dass ein anderes Rechnermodell eventuell effizienterProbleme lösen könnte als die Turing-Maschine. Obwohl dies im Allgemeinengut ist, würde es für die Kryptographie eine starke Einschränkung bedeuten. Dasführt uns zur erweiterten Church-Turing-These, die besagt:

Satz 2.2 (Erweiterte Church-Turing-These). Jedes intuitiv realisierbare Rechnermo-dell ist in polynomieller Zeit von einer Turing-Maschine simulierbar.

Seit dem Aufkommen der Idee von Quantencomputern gibt es allerdings Kri-tik an dieser These. Peter Shor konnte einen Algorithmus angeben, mit dem einQuantencomputer effizient Zahlen faktorisieren kann. Dies ist mit heutigen Com-putern vermutlich nicht möglich (vgl. Kapitel 3.3.3). Daher wird allgemein ange-nommen, dass die erweiterte Church-Turing-These nicht gilt.

Mysterium.

Es ist nicht klar, ob Quantencomputer echt mächtiger als Turing-Maschinensind. Ein Beispiel für diese Möglichkeit ist der bereits erwähnte Algorithmuszur Faktorisierung von Shor.

Page 54: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

48 2. Berechenbarkeitstheorie

Hinweis.

Nachdem wir Automaten und Maschinen bisher immer ausführlich Zustandfür Zustand definiert haben, werden wir in diesem Kapitel dazu übergehen,Maschinen und Programme informell über Beschreibungen ihrer Funktions-weisen anzugeben.

Definition 2.3 (Akzeptor). Eine Turing-MaschineM = (Q,Σ, Γ , δ,q0,qaccept,qreject),die für alle w ∈ L(M) aus der Startkonfiguration q0w akzeptiert, heißt Akzeptor. L(M)

heißt rekursiv aufzählbar oder semi-entscheidbar.

Die Klasse aller semi-entscheidbaren Sprachen bezeichnen wir mit RE (für recursivelyenumerable).

Analog setzen wir co − RE = L | L ∈ RE. Bei einem Akzeptor ist das Verhaltenfürw /∈ L(M) nicht definiert:M kann entweder halten oder in einer Endlosschleifeweiterrechnen.

Definition 2.4 (Entscheider).Eine Turing-Maschine M = (Q,Σ, Γ , δ,q0,qaccept,qreject), die für alle w ∈ L(M) ausder Startkonfiguration q0w akzeptiert und für alle w /∈ L(M) hält, heißt Entscheider.L(M) heißt rekursiv oder entscheidbar.

Die Klasse aller entscheidbaren Sprachen bezeichnen wir mit R (für recursive).

2.1 Die Universelle Turing-MaschineIn diesem Abschnitt formalisieren wir eine eindeutige Beschreibung für das „Pro-gramm“ einer Turing-Maschine und definieren eine Turing-Maschine, die solche„Programme“ ausführen kann.

Es seiM = (Q,Σ, Γ , δ,q0,qaccept,qreject) eine Turing-Maschine und ohne Beschrän-kung der Allgemeinheit seien Σ = X0, . . . Xs, Γ = Σ∪ Xs+1, . . . ,Xg,Q = q0, . . . ,qtund o. B. d. A. seien q0 der Anfangszustand und q1 der einzige akzeptierende Zu-stand. Dann wird M durch δ vollständig beschrieben.

Sei δ(qi,Xj) = (qk,Xl,Dm) mit D1 = L,D2 = N,D3 = R. Wir geben nun eine Codie-rung für δ(qi,Xj) = (qk,Xl,Dm) an: Codep = 0i10j10k10l10m.

Die gesamte Zustandsübergangstabelle wird nun wie folgt codiert:

111Code1 11Code2 11 . . . 11Codet 111

Wir vereinbaren zusätzlich, dass jede nicht wohlgeformte Codierung für eine Tu-ring-Maschine steht, die ∅ akzeptiert. Wir haben somit für jede Turing-Maschi-ne eine natürliche Zahl (in Binärcodierung) angegeben. Jede Gödelnummer be-schreibt genau eine Turing-Maschine.

Die Turing-Maschine M wird also binär nach N0 abgebildet.

Page 55: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

2.2. Eigenschaften von Sprachen 49

Definition 2.5 (Gödelnummer). Eine eindeutige Codierung einer Turing-Maschinenennen wir eine Gödelcodierung oder Gödelisierung. Die Codierung einer Turing-Ma-schine M heißt Gödelnummer und wird mit 〈M〉 bezeichnet.

Information.

Manchmal wird die Turing-Maschine mit der Gödelnummer w auch mit Mw

bezeichnet. Es gilt dann 〈Mw〉 = w.

Wir konstruieren nun eine 3-Band-Turing-Maschine U, die für eine gegebene Gö-delnummer 〈M〉 und eine Eingabe w die Turing-Maschine der Nummer 〈M〉 = nauf w simuliert.

Zunächst überprüft die Maschine die syntaktische Korrektheit der Codierung.Die Eingabe w bleibt auf Band 1, die Gödelnummer 〈M〉wird auf Band 2 kopiert.Der Zustand der simulierten Turing-Maschine wird auf Band 3 gehalten. U liestauf Band 1, was auch M lesen würde (das Symbol Xj), auf Band 3 steht qi codiertals 0i. Nun sucht U auf Band 2 den zu qi gehörigen Block 110i10j1 . . . 1. Gibt esdiesen Block nicht, so hält U (genauso wie M).

Ist i = 1, wird die Eingabe akzeptiert. Eine Ausgabe wird auf Band 1 gegeben.Wird der Block gefunden, so ist auf Band 2 die Zustandsübergangsfunktion für(qi,Xj) mit . . . 0k10l10m11 codiert, die angibt, was M tun würde. Wir ersetzen denalten Zustand, codiert duch 0i auf Band 3, durch den neuen Zustand, codiertdurch 0k, schreiben das Symbol Xl auf Band 1 und bewegen den Kopf von Band1 in Richtung Dm.

Definition 2.6 (Universelle Turing-Maschine). Die Turing-Maschine, die bei Einga-be der Gödelnummer 〈M〉 einer Turing-Maschine M und einer Eingabe w die Ausfüh-rung von M auf w simuliert, heißt universelle Turing-Maschine. Es gilt U(〈M〉,w) =M(w).

2.2 Eigenschaften von Sprachen

2.2.1 Diagonalisierung

Die Diagonalisierung ist eine Beweismethode aus der Mathematik, die auch inder theoretischen Informatik Anwendung findet. Sie geht auf eine Methode vonCantor zurück:

Satz 2.7. Die reellen Zahlen R sind echt mächtiger als N.

Beweis. Wir zeigen die Behauptung, das offene Intervall ]0, 1[ sei echt mächtigerals N. Da ]0, 1[⊂ R, ist damit auch die Behauptung gezeigt. Dazu nehmen wirzum Widerspruch an, ]0, 1[ sei abzählbar. Dann existierte eine BijektionN→ ]0, 1[.Wir zeigen, dass keine surjektive Abbildung N → R existiert: Eine AbbildungN→ ]0, 1[ induziert eine Folge auf ]0, 1[.

Page 56: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

50 2. Berechenbarkeitstheorie

Betrachte also eine beliebige Folge (zi) auf ]0, 1[ und deren Glieder (in g-adischerEntwicklung):

z1 = 0,a11a12a13 . . .z2 = 0,a21a22a23 . . .z3 = 0,a31a32a33 . . .

...

Wir konstruieren eine neue Zahl x = 0,x1x2x3 . . . ∈ ]0, 1[ nach folgender Vorschrift:

xi =

4, wenn aii = 55, sonst

Damit ist xi 6= aii ∀i ∈ N. Also ist (zi) nicht surjektiv auf ]0, 1[. Es gibt also keinesurjektive Abbildung N→ R. Damit ist die Behauptung gezeigt.

Satz 2.8 (Satz von Cantor). Für jede Menge M ist P(M) echt mächtiger als M selbst.

Wir führen den Beweis nach Halmos:

Beweis. Nehmen wir zum Widerspruch an, P(M) sei gleich mächtig wieM. Danngibt es eine surjektive Abbildung

σ :M→ P(M).

Damit definieren wir die Menge

H = x ∈M | x /∈ σ(x).

Offensichtlich gilt H ⊆M, also auch H ∈ P(M). Aus der Surjektivität von σ folgt,dass es ein h ∈M mit σ(h) = H gibt. Damit gilt:

h ∈ H ⇐⇒ h /∈ σ(h)⇐⇒ h 6∈ H

Korollar 2.9. Es gibt Sprachen, die nicht entscheidbar sind.

Beweis. Für jedes endliche Alphabet Σ ist Σ∗ gleich mächtig wie N: Sei o. B. d. A.Σ = 0, 1, . . . ,n. Jedes w ∈ Σ∗ ist dann eine natürliche Zahl zur Basis n+ 1. Alsohat P(Σ∗) die gleiche Mächtigkeit wie P(N). Da P(Σ∗) die Menge aller Sprachenüber Σ∗ ist, folgt damit unmittelbar, dass die Menge aller Sprachen über Σ echtmächtiger ist als N. Die Gödelnummer ist eine eindeutige natürliche Zahl. Esgibt also nur abzählbar viele Turing-Maschinen. Jede Turing-Maschine akzeptiertgenau eine Sprache. Es gibt also Sprachen, die nicht entscheidbar sind.

Page 57: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

2.2. Eigenschaften von Sprachen 51

2.2.2 Nichtentscheidbarkeit

Der obige Beweis war nicht konstruktiv. Wir lernen nun eine Sprache kennen, dienicht entscheidbar ist.

Definition 2.10 (Diagonalsprache). Die Sprache

LD = w ∈ Σ∗ | Die Turing-Maschine M mit 〈M〉 = w akzeptiert w nicht.

heißt Diagonalsprache.

Satz 2.11. Die Diagonalsprache LD ist nicht entscheidbar.

Beweis. Sei LD entscheidbar. Dann gibt es eine Turing-Maschine T , die LD ent-scheidet. Sei t = 〈T〉 die Gödelnummer von T . Es gibt nun zwei Möglichkeiten:

Falls t ∈ LD, würde t von T akzeptiert. Dies ist ein Widerspruch zur Definitionvon LD.

Falls aber t /∈ LD, so würde es nicht von T akzeptiert. Dann würde aber nachDefinition gerade t ∈ LD gelten.

Korollar 2.12. LD = Σ∗ \ LD ist semi-entscheidbar.

Beweis. LD = 〈M〉 ∈ Σ∗ | 〈M〉 ∈ L(M). Definiere einen Akzeptor T , der für 〈M〉folgendermaßen arbeitet:

1. Simuliere M auf der Eingabe 〈M〉.

2. Akzeptiere, wenn M akzeptiert.

Die Begriffe der Diagonalisierung und der Diagonalsprache gehen auf CantorsBeweismethode zurück. Wir ordnen die Wörter in Σ∗ lexikographisch in eine Fol-ge w0,w1, . . . und erstellen eine Tabelle. Nach rechts tragen wir wj = w0,w1, . . .auf, nach unten Mi mit 〈Mi〉 = wi. In die Zellen der Tabelle schreiben wir eine 1,wenn wj ∈ L(Mi):

w0 w1 w2 w3 . . .M0 0 1 1 0 . . .M1 1 1 0 0 . . .M2 0 0 0 1 . . .M0 1 1 0 1 . . .

......

......

... . . .

Die Diagonalsprache besteht nun aus genau den wi, für die in der Zelle (Mi,wi),also auf der Diagonalen, eine 0 steht. Aus diesen erzeugen wir einen Wider-spruch.

Page 58: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

52 2. Berechenbarkeitstheorie

Definition 2.13 (Universelle Sprache). Die universelle Sprache ist definiert durch

ATM = 〈M〉w ∈ Σ∗ | 〈M〉 beschreibt eine Turing-Maschine und M akzeptiert w..

Satz 2.14. ATM ist nicht entscheidbar.

Beweis. Sei ATM entscheidbar und T der dazugehörige Entscheider. Dann gibt eseinen Entscheider T , der genau dann akzeptiert, wenn T nicht akzeptiert (undumgekehrt). Wendet man T auf die Eingabe 〈M〉〈M〉 an, so könnte er LD entschei-den.

Definition 2.15 (Berechenbarkeit). Sei Σ ein endliches Alphabet. Eine Funktionf : Σ∗ → Σ∗ heißt berechenbar, falls es eine Turing-Maschine M gibt, die für jedeEingabe w ∈ Σ∗ nach endlich vielen Schritten mit f(w) als einzigem Bandinhalt hält.

Eine solche Maschine unterscheidet sich von Akzeptoren und Entscheidern da-durch, dass die Ausgabe auf das Band codiert ist. So gut wie alle einfachen Ope-ratoren wie +,−,×,÷ sind auf diskreten Strukturen wie N, Z, Q berechenbar.

2.2.3 Many-one-Reduktion

Definition 2.16 (Many-one-Reduzierbarkeit). Es seien A,B ⊆ Σ∗ Sprachen. A ist aufB many-one-reduzierbar, kurz A 6m B, falls eine berechenbare Funktion f : Σ∗ → Σ∗

existiert, sodass für alle w ∈ Σ∗: w ∈ A⇔ f(w) ∈ B.

Man sagt informell, B ist schwieriger als A. f heißt Many-one-Reduktion von A auf B.

Wir betrachten also ein Wort a, reduzieren dieses auf ein Wort b = f(a), prüfen,ob b ∈ B ist und folgern daraus, ob auch a ∈ A gilt.

Satz 2.17. Sei A 6m B. Wenn B entscheidbar ist, dann auch A.

Beweis. Es sei A 6m B und B entscheidbar. Dann gibt es einen Entscheider T für Bund eine Many-one-Reduktion f vonA auf B. Wir konstruieren einen EntscheiderT ′ für A.

Für die Eingabe w:

1. Berechne f(w).

2. Simuliere T für die Eingabe f(w) und akzeptiere genau dann, wenn T ak-zeptiert.

Offensichtlich gilt: Wenn w ∈ A, dann ist f(w) ∈ B, weil T ′ w akzeptiert, wennT f(w) akzeptiert.

Korollar 2.18. Ist A 6m B und A nicht entscheidbar, so ist auch B nicht entscheidbar.

Beweis. Zur Übung.

Page 59: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

2.2. Eigenschaften von Sprachen 53

2.2.4 Das Halteproblem

Problem 2.19 (Halteproblem). Das Halteproblem ist definiert durch

HALTTM = 〈M〉w |M ist eine Turing-Maschine und M hält auf der Eingabe w..

Information.

Die Definition des Halteproblems umfasst alle Turing-Maschinen und Ein-gaben. Diskutiert man eine konkrete Maschine mit einer konkreten Eingabe,spricht man von einer sogenannten Instanz.

Übrigens . . .

Wenn wir davon sprechen, ein Problem sei nicht entscheidbar, bedeutet das,dass kein Entscheider für alle Instanzen existiert. Es kann aber durchaus Ent-scheider für bestimmte Instanzen geben.

Satz 2.20. Das Halteproblem HALTTM ist nicht entscheidbar.

Beweis. Wir geben eine Many-one-Reduktion f von der universellen SpracheATMauf HALTTM an. Dazu sei X = 〈M〉w eine Instanz von ATM. Wir definieren nunf(〈M〉w) = 〈M ′〉w und konstruieren die Turing-Maschine M ′ für die Eingabe vwie folgt:

1. Simuliere M mit Eingabe v.

2. Falls M v nicht akzeptiert, gehe in eine Endlosschleife.

3. Falls M v akzeptiert, akzeptiere.

Es ist klar, dass M ′ für die Eingabe w genau dann hält, wenn M die Eingabe wakzeptiert. Also ist f eine Many-one-Reduktion von ATM auf HALTTM.

Satz 2.21. ATM und HALTTM sind semi-entscheidbar.

Beweis. Wir zeigen die Semi-Entscheidbarkeit von ATM. Dazu geben wir einenAkzeptor T für ATM an. Wir konstruieren T für die Eingabe 〈M〉w:

1. Simuliere M mit Eingabe w.

2. Akzeptiere, wenn M akzeptiert.

Der Beweis für HALTTM ist zur Übung.

Page 60: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

54 2. Berechenbarkeitstheorie

Satz 2.22. Es gilt R = RE ∩ co − RE. Eine Sprache ist also genau dann entscheidbar,wenn sie und ihr Komplement semi-entscheidbar sind.

Beweis. Es seien L und L Sprachen.„⊆“: Folgt direkt aus der Definition.„⊇“: Es sei T1 ein Akzeptor für L und T2 ein Akzeptor für L. Wir konstruierendaraus einen Entscheider T für L: Simuliere parallel T1 mit Eingabe w und T2 mitEingabe w.

1. Sobald T1 akzeptiert, akzeptiere.

2. Sobald T2 akzeptiert, lehne ab.

Da w entweder in L oder L liegt, wird w entweder von T1 oder T2 nach endlicherZeit akzeptiert. Somit ist T ein Entscheider für L.

2.2.5 Das Post’sche Korrespondenzproblem

Problem 2.23 (Post’sches Korrespondenzproblem). Gegeben sei eine endliche Mengevon Puzzlestücken S =

(t1b1

). . .(tnbn

)mit t1, . . . , tn,b1, . . . ,bn ∈ Σ∗. Gibt es Indizes

i1, . . . , ik ∈ 1, . . . ,n, sodass ti1 . . . tik = bi1 . . . bik gilt?

Beispiel 17.Sei Σ = a,b, c und S =

(bca

),(aab

),(caa

),(abcc

).

Eine Lösung für S ist(

aab

),(bca

),(caa

),(aab

),(abcc

).

Satz 2.24. Das Post’sche Korrespondenzproblem ist nicht entscheidbar.

Beweis. Idee: Wir reduzieren das Wortproblem für Grammatiken vom Chomsky-Typ 0 auf das Post’sche Korrespondenzproblem.

Gegeben sei eine Grammatik G = (Σ,V ,S,P) vom Chomsky-Typ 0. Wir setzenΣ ′ = t ′1, . . . , t

′n mit Σ ∩ Σ ′ = ∅ als das zu Σ gestrichte Terminalalphabet. Für ein

Wort w ∈ Σ∗ sei w ′ ∈ (Σ ′)∗ das gestrichte Wort. Analog definieren wir die Mengeder Variablen V ′.

Wir setzen das Alphabet des PKP auf ΣPKP = Σ∪Σ ′∪V ∪V ′∪ ∗, ∗ ′. Wir definierennun die Puzzlestücke unseres PKPs: Für jede Produktion α → β ∈ P führen wirfolgende Puzzlestücke in SPKP ein:(

β ′

α

),(β

α ′

).

Falls α oder β beispielsweise der Form aXb sind, werden sie zu a ′X ′b ′. Für jedest ∈ Σ definieren wir die Puzzlestücke(

t ′

t

),(t

t ′

).

Page 61: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

2.2. Eigenschaften von Sprachen 55

Nun benötigen wir nur noch Puzzlestücke für die Anfangs- und die Endbedin-gung, sowie für die Trennung der einzelnen Ableitungsschritte. Dabei ist S dasStartsymbol der Grammatik und w das Wort, welches wir ableiten wollen:(

S∗ ′

ε

),(ε

∗w

),(∗ ′

),(∗∗ ′

).

Haben wir nun eine Ableitung

S⇒ w1 ⇒ w2 ⇒ · · · ⇒ wk ⇒ w,

so können wir diese in eine Lösung des PKPs übersetzen:(S∗ ′

ε

)(w ′1S

)(∗∗ ′

)(w2w ′1

)(∗ ′

). . .

(∗ ′

)(w ′kwk−1

)(∗∗ ′

)(w

w ′k

)(ε

∗w

).

Damit sieht man auch, dass eine solche Lösung des PKPs eine korrekte Ableitungvon w impliziert.

Beispiel 18.Um die Technik zu veranschaulichen, betrachten wir die Grammatik G =

(Σ,V ,S,P) mit Σ = a,b, c, V = S,X und

P = S→ aXb,X→ c.

Wir wollen das Wort acb ableiten. Daraus ergeben sich für das PKP folgendePuzzlestücke:(

S∗ ′

ε

),(

ε

∗acb

),(∗ ′

),(∗∗ ′

),(a ′X ′b ′

S

),(aXb

S ′

),(c ′

X

),(c

X ′

),(a ′

a

),(a

a ′

),(b ′

b

),(

b

b ′

),(c ′

c

),(c

c ′

).

Eine Ableitung von acb sieht dann aus wie folgt:(S∗ ′

ε

),(a ′X ′b ′

S

),(∗∗ ′

),(a

a ′

),(c

X ′

),(b

b ′

),(

ε

∗acb

).

2.2.6 Der Satz von Rice

Satz 2.25 (Satz von Rice). Sei P die Menge aller Turing-berechenbaren Funktionen undS eine nichtleere Menge davon, also ∅ 6= S ⊂ P. Dann ist die Menge

C(S) = 〈M〉 |M berechnet eine Funktion aus S

nicht entscheidbar.

Page 62: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

56 2. Berechenbarkeitstheorie

Eine Interpretation des Satzes von Rice ist: „Sei S eine nichttriviale Eigenschaftder von einer Turing-Maschine akzeptierten Sprache. Die Sprache C(S) = 〈M〉 |L(M) hat Eigenschaft S ist nicht entscheidbar.“ Eine Eigenschaft ist nichttrivial,wenn sie nicht schon für alle Turing-Maschinen oder keine Turing-Maschine gilt.Beispiele sind die Programmäquivalenz (M(x) = M ′(x)) oder die Zugehörigkeitzu bestimmten Funktionsklassen (z. B.:M berechnet eine Funktion, die die natür-lichen Zahlen als Wertebereich hat).

Beweis. Wir nehmen zum Widerspruch an, C(S) sei entscheidbar. Wir entscheidendie Universalsprache ATM.

Da S nichttrivial ist, gibt es eine Turing-Maschine T mit 〈T〉 ∈ C(S).

Wir konstruieren die Turing-Maschine D für die Eingabe 〈M〉w:

1. Erzeuge eine Turing-Maschine M ′, die für die Eingabe x Folgendes berech-net:

(a) Simuliere M(w). Wenn sie ablehnt, lehne ab. Sonst:

(b) Simuliere T(x). Wenn sie akzeptiert, akzeptiere. Sonst lehne ab.

2. Entscheide, ob 〈M ′〉 ∈ C(S). Wenn ja, akzeptiere. Sonst lehne ab.

M ′ simuliert T , wenn M(w) akzeptiert. Dann ist L(M ′) = L(T), sonst L(M ′) = ∅.Also ist genau dann 〈M ′〉 ∈ C(S), wenn M(w) akzeptiert. D entscheidet die uni-verselle Sprache.

2.3 Kleene’sches Rekursionstheorem

Wagen wir einen philosophischen Ausflug: Dass Lebewesen sich reproduzierenkönnen, akzeptiert man leicht. Beispielsweise trägt jedes Bakterium seinen „Co-de“ in sich und kann sich durch Teilung reproduzieren. Nicht so leicht akzeptiertman wiederum die Vorstellung einer Maschine, die Maschinen erzeugen kann.Schließlich hat eine Maschine einen Bauplan und diesen Bauplan muss man ken-nen, um sie zu bauen. Die Komplexität einer Maschine, die eine andere Maschinebauen soll, muss also höher sein als die der zu konstruierenden Maschine, dennneben dem Bauplan müssen ja auch Routinen zum Konstruieren an sich und zumSelbsterhalt vorhanden sein. Und das bedeutet schlussendlich, dass Maschinensich nicht selbst reproduzieren können, da sie ja ihren eigenen „Code“ als Sub-routine enthalten müssen. Es stellt sich heraus, dass diese Argumentation so nichtrichtig ist:

• Es gibt Turing-Maschinen, die ihren eigene Beschreibung, also ihre Gödel-nummer, ausgeben können.

• Es gibt Turing-Maschinen, die ihren eigenen Code verwenden können.

Page 63: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

2.3. Kleene’sches Rekursionstheorem 57

Lemma 2.26. Es gibt eine berechenbare Funktion q : Σ∗ → Σ∗, die für jedes Wortw ∈ Σ∗die Gödelnummer einer Maschine Pw berechnet, die w ausgibt und hält, also q(w) =

〈Pw〉.

Beweis. Konstruiere eine Turing-Maschine Q, welche q berechnet. Für die Einga-be w:

1. Konstruiere die folgende Turing-Maschine Pw:

Pw = Für jede beliebige Eingabe1. Lösche die Eingabe.2. Schreibe w auf das Band.3. Halte.

2. Gib 〈Pw〉 aus.

2.3.1 Die SELF-Maschine (ein Quine)

In diesem Abschnitt beantworten wir die Frage „Kann man ein Programm schrei-ben, das seinen eigenen Quelltext ausgibt?“.

Die Antwort ist „ja“. Solche Programme heißen Quines. Im WWW findet manviele Beispiele für Quines in verschiedenen Programmiersprachen. Es gibt so-gar ein „ZIP-Quine“, das eine Besonderheit des LZW-Algorithmus ausnutzt. Wirerstellen hier eine Turing-Maschine, die ihre eigene Gödelnummer ausgibt. DieKonstruktion folgt dabei dieser Grundidee:

Gib zwei Kopien des Folgenden exklusive Anführungszeichen aus, die zweite

Kopie in Anführungszeichen:

„Gib zwei Kopien des Folgenden aus, die zweite Kopie in Anführungszeichen:“

Wir konstruieren SELF in zwei Turing-Maschinen-Teilen A und B:

1. A = P〈B〉

2. B = Für die Eingabe 〈M〉

(a) Berechne q(〈M〉).

(b) Kombiniere das Ergebnis mit 〈M〉, um eine die Gödelnummer einerTuring-Maschine M ′ zu erstellen.

(c) Gib 〈M ′〉 aus und halte.

Page 64: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

58 2. Berechenbarkeitstheorie

Zuerst muss natürlich B konstruiert werden. Die Beschreibung von B ist unab-hängig von A und arbeitet mit einer beliebigen Eingabe. A wird um die Gödel-nummer von B herum konstruiert. Wird nun A vor B ausgeführt, findet B seineeigene Gödelnummer als Eingabe vor.

Satz 2.27. SELF = AB gibt 〈SELF〉 aus.

Beweis.

1. Zuerst wird A ausgeführt und schreibt 〈B〉 auf das Band.

2. B startet und findet die Eingabe 〈B〉.

3. B berechnet q(〈B〉) = 〈A〉 und kombiniert dies mit 〈B〉 zu 〈AB〉 = 〈SELF〉.

4. B schreibt 〈SELF〉 auf das Band und hält.

Das Ergebnis 〈AB〉 ist die Gödelnummer einer Maschine, die sich selbst ausgibt.

. . . . . .

A→ B

Abbildung 2.1: SELF-Maschine.

2.3.2 Das Rekursionstheorem

Das Rekursionstheorem wird es uns erlauben, Turing-Maschinen anzugeben, dieihre eigene Gödelnummer kennen. Wir sagen dann „ermittle die eigene Gödel-nummer 〈M〉“. Auf diese Weise wäre das Programm SELF leichter zu konstruie-ren: „Ermittle die eigene Gödelnummer 〈M〉 und gib 〈M〉 aus“. Das Rekursions-theorem ist aber nicht nur für Spielereien nützlich, sondern allgemein ein nützli-ches Werkzeug für Beweise.

Information.

Die Aussage „Ermittle die eigene Gödelnummer 〈M〉“ ist irreführend: Die Tu-ring-Maschine ermittelt nicht zur Laufzeit ihr eigenes Programm; dieses stehtihr vielmehr statisch zur Verfügung. Verändert man eine Turing-Maschine ineinem Beweis, nachdem man das Rekursionstheorem verwendet hat, weichtdie Gödelnummer, auf die die Maschine zugreift, von ihrer eigenen Gödel-nummer ab. Die Aussage des Rekursionstheorems ist daher nicht mit den„Reflection“-Eigenschaften moderner Programmiersprachen zu verwechseln,mit deren Hilfe Programme bei der Laufzeitumgebung ihre eigenen Eigen-schaften erfragen können.

Page 65: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

2.3. Kleene’sches Rekursionstheorem 59

Satz 2.28 (Rekursionstheorem). Es sei T eine Turing-Maschine, welche die Funktiont : Σ∗×Σ∗ → Σ∗ berechnet. Dann existiert eine Turing-Maschine R, welche die Funktionr : Σ∗ → Σ∗ mit

r(w) = t(〈R〉,w)

für alle w ∈ Σ∗ berechnet.

Das heißt: Für die Berechnung einer Funktion kann man eine Turing-Maschinefinden, welche ihre eigene Gödelnummer mitverwenden kann.

T „weiß“ nicht unbedingt, wie die eigene Codierung überhaupt aussieht. R wirdso konstruiert (ähnlich zu SELF), dass diese Codierung zur Verfügung steht.

Definition 2.29 (Mehrband-Turing-Maschine). Die Turing-Maschine P(i)x schreibt xauf Band Nummer i einer Mehrband-Turing-Maschine.

Beweis. T habe o. B. d. A. zwei Bänder (also zwei separate Register für die Einga-be), auf dem ersten Band stehe als Eingabe 〈M〉, auf dem zweiten w. Wir kon-struieren die Turing-Maschine R aus den drei Programmteilen A,B, T (A und Bseien auch 2-Band-Turing-Maschinen, T ist die gegebene Turing-Maschine), sodass R = ABT .

• A = P(1)〈BT〉

• B = Lies 〈M〉 vom ersten Band und berechne q(〈M〉) = 〈P(1)〈M〉〉. Hänge M an

P(1)〈M〉 an und schreibe 〈P(1)〈M〉M〉 auf das erste Band. Übergib die Berechnung

an T .

Setze R = ABT .

R berechnet r(〈R〉,w):

1. Nach Ausführung von A steht 〈BT〉 auf dem ersten Band.

2. Nach Ausführung von B steht 〈P(1)〈BT〉BT〉 = 〈ABT〉 = 〈R〉 auf dem ersten Band.

3. T findet 〈R〉 auf dem ersten Band und w auf dem zweiten Band, gibt alsot(〈R〉,w) aus.

Als Beispiel für den Nutzen des Rekursionstheorems beweisen wir Satz 2.14 vonSeite 52 erneut:

Page 66: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

60 2. Berechenbarkeitstheorie

Satz 2.30. ATM ist nicht entscheidbar.

Beweis. Ist ATM entscheidbar, existiert ein Entscheider T , der ATM entscheidet.Wir konstruieren eine Turing-Maschine M für Eingabe w:

1. Ermittle die eigene Gödelnummer 〈M〉 (Rekursionstheorem).

2. Führe T auf 〈M〉w aus.

3. Akzeptiere, wenn T ablehnt und umgekehrt.

M macht das Gegenteil von dem, was T über ihr Verhalten vorhersagt. Also ist Tkein Entscheider für ATM.

Ein weiteres Beispiel für die Anwendung des Rekursionstheorems ist die „Mini-malsprache“ und ihre Nichtentscheidbarkeit.

Definition 2.31 (Minimale Turing-Maschine). SeiM eine Turing-Maschine. Dann istdie Länge der Beschreibung von M die Anzahl der Zeichen von 〈M〉 (Notation: |〈M〉|).Wir sagen, dass M minimal ist, wenn es keine funktionsäquivalente Turing-Maschinemit kürzerer Beschreibung gibt. Weiterhin sei

MINTM = 〈M〉 |M ist eine minimale Turing-Maschine.

Satz 2.32. MINTM ist nicht semi-entscheidbar.

Beweis. Angenommen, MINTM wäre semi-entscheidbar. Dann gäbe es eine Tu-ring-Maschine E, die MINTM aufzählt. Wir konstruieren eine Turing-Maschine Cmit der Eingabe w:

1. Ermittle die eigene Gödelnummer 〈C〉 (Rekursionstheorem).

2. Lasse E so lange laufen, bis sie die Gödelnummer einer Turing-Maschine Dmit |〈D〉| > |〈C〉| ausgibt.

3. Simuliere D auf w.

MINTM ist unendlich (Übung), also existiert so ein D mit |〈D〉| > |〈C〉|. D ist mini-mal, da D ∈MINTM. C simuliert aber die Ausführung von D. D war so gewählt,dass |〈C〉| < |〈D〉|. Also ist D nicht minimal. Das steht im Widerspruch zur Defini-tion von MINTM. Also zählt E nicht MINTM auf.

Page 67: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

2.4. Gödels Unvollständigkeitssatz 61

2.3.3 Das Rekursionstheorem (zweite Form)

Satz 2.33 (Rekursionstheorem, zweite Form). Es sei t : Σ∗ → Σ∗ eine beliebige be-rechenbare Funktion. Dann gibt es eine Turing-Maschine F, für welche t(〈F〉) die Gödel-nummer einer Turing-Maschine G ist, welche dieselbe Funktion wie F berechnet (G istäquivalent zu F).

Stellt ein Wort w ∈ Σ∗ keine gültige Turing-Maschine dar, wird im Folgendenangenommen, dass w eine Turing-Maschine, die die leere Sprache akzeptiert, re-präsentiert.

Beweis (Skizze). Sei F die folgende Turing-Maschine für die Eingabe w:

1. Ermittle die eigene Gödelnummer 〈F〉 (Rekursionstheorem).

2. Berechne 〈G〉 = t(〈F〉).

3. Simuliere G auf w.

Offensichtlich beschreiben 〈F〉 und t(〈F〉) = 〈G〉 äquivalente Turing-Maschinen,da F G simuliert.

Eine Interpretation der zweiten Form des Rekursionstheorems ist, dass es für je-de Programmtransformation einen Fixpunkt gibt. (Ein Fixpunkt einer Funktionf ist ein Wert x, so dass f(x) = x.) Für jede Programmtransformation gibt es also(mindestens) ein Programm, das durch die Transformation nicht verändert wird.

2.4 Gödels UnvollständigkeitssatzIn den zwanziger Jahren des vorigen Jahrhunderts schlug der Mathematiker Da-vid Hilbert vor, die Mathematik als formales System neu zu formulieren (in demsogenannten Hilbertprogramm). Ein Ziel war, außerhalb des gefundenen Kalkülsseine Widerspruchsfreiheit zu zeigen. Außerdem sollte jede im Kalkül formulier-bare Aussage als entweder wahr oder falsch bewiesen werden können. In derFolge stellte sich heraus, dass das unmöglich ist.

Satz 2.34 (Gödels Erster Unvollständigkeitssatz). Jedes hinreichend mächtige formaleSystem ist entweder widersprüchlich oder unvollständig.

Wir werden später genauer spezifizieren, was hinreichend mächtig in diesem Fallbedeutet.

In diesem Abschnitt stellen wir Hilberts Programm „im Kleinen“ nach und zei-gen einige interessante Aussagen dazu. Wir einigen uns zuerst auf eine formaleSprache. Wir möchten Aussagen wie beispielsweise ∀a,b, c,n[(a,b, c > 0∧ n >

2) → an + bn 6= cn] (Fermats großer Satz) beweisen oder widerlegen. Dazu müs-sen wir uns auf ein Alphabet festlegen:

Σ = ∧,∨,¬, (, ), ∀, ∃, x,R1, . . . ,Rk

Page 68: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

62 2. Berechenbarkeitstheorie

Σ besteht also aus logischen Verknüpfungen, Klammern, Quantoren, Variablen undRelationssymbolen. (Wir führen hier nur die Variable x an. Um mehrere Variablenzu erhalten, schreiben wir xx, xxx, und so weiter, welche für x2, x3, . . . stehen.)

Definition 2.35 (Grundlagen Logik (1)).

• Ein Term der Form Ri(x1, . . . , xk) heißt atomare Formel.

• Ein Term φ ist eine Formel, wenn

– er eine atomare Formel ist,

– er die Form φ1 ∧φ2, φ1 ∨φ2 oder ¬φ1 hat, wobei φ1 und φ2 selbst Formelnsind, oder

– er die Form ∃xi : φ1 oder ∀xi : φ1 hat, wobei φ1 selbst eine Formel ist.

• Wir nehmen an, dass alle Formeln in Pränexform vorliegen, alle Quantoren alsoam Anfang einer Formel stehen.

• Eine Variable, die nicht durch einen Quantor gebunden ist, heißt freie Variable.

• Eine Formel, die keine freien Variablen enthält, heißt Aussage.

Beispiel 19.Zwei Formeln, die zweite ist eine Aussage:

1. ∀x1 : R1(x1)∧ R2(x1, x2, x3)

2. ∀x1∃x2∃x3 : R1(x1)∧ R2(x1, x2, x3)

Definition 2.36 (Grundlagen Logik (2)).

• Variablen nehmen Werte über einem Universum an.

• Eine Zuordnung von Relationen zu Relationssymbolen zusammen mit einem Uni-versum heißt Struktur. IstU ein Universum und sind P1, . . . Pk Relationen, schrei-ben wir S = (U,P1, . . . ,Pk).

• Die Sprache einer Struktur S ist die Menge der Formeln, die nur die Relationenaus S (in richtiger Weise) verwendet.

• Die Menge der wahren Aussagen in der Sprache einer Struktur S nennen wir dieTheorie von S oder Th(S).

Beispiel 20 (Aussagen über (N,+,×)).

• ∀q ∃p ∀x,y : p > q∧ (x,y > 1) → x · y 6= p (Es gibt unendlich viele Primzah-len.)

• ∀a,b, c,n : (a,b, c > 0∧n > 2)→ an + bn 6= cn (Großer Fermat’scher Satz)

Page 69: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

2.4. Gödels Unvollständigkeitssatz 63

In Gödels Erstem Unvollständigkeitssatz wurde ein hinreichend mächtiges for-males System genannt. Im Folgenden werden wir sehen, dass ein formales Sys-tem, welches die Zahlentheorie beschreiben kann, ausreicht. Wir beginnen miteiner abgeschwächten Form der Zahlentheorie, wo Multiplikation nicht berück-sichtigt wird.

Satz 2.37. Th(N,+) ist entscheidbar.

Beweis. Ohne Beweis.

Diese Theorie ist entscheidbar, aber sobald die Multiplikation dazukommt, alsoalle Aussagen der Zahlentheorie abgebildet werden können, ist die Theorie nichtmehr entscheidbar.

Satz 2.38. Th(N,+,×) ist unentscheidbar.

Beweis. Idee: Wir reduzieren das Wortproblem von Turing-Maschine auf die Ent-scheidbarkeit von Th(N,+,×). Zu jeder Turing-Maschine M und jedem Wort wkann in Th(N,+,×) eine Formel φM,w mit freier Variable x erstellt werden, sodassdie Aussage gilt

∃x : φM,w = 1⇔M akzeptiert w.

Da das Wortproblem für unbeschränkte Sprachen nicht entscheidbar ist, kannauch die Zahlentheorie Th(N,+,×) nicht entscheidbar sein.

Um den nächsten Schritt zu Gödels Zweitem Unvollständigkeitssatz zu machen,müssen wir zuerst formal definieren, was ein Beweis ist.

Definition 2.39 (Beweis). Ein formaler Beweis π für die Aussage φ ist eine Folge vonAussagen S1,S2, . . . ,Sl mit Sl = φ, wobei sich jedes Si(i > 2) aus Si−1 unter Zuhilfenah-me von grundlegenden Axiomen und logischen Regeln folgern lässt.

Wichtige Mindesteigenschaften eines Beweises:

1. Die Korrektheit eines Beweises ist maschinell verifizierbar.

2. „Soundness“: Jede beweisbare Aussage ist wahr.

Satz 2.40. Die Menge der beweisbaren Aussagen in Th(N,+,×) ist semi-entscheidbar.

Beweis. Es sei P ein Algorithmus, der eine Eingabe φ akzeptiert, wenn es einenBeweis für φ gibt. P testet (unter Zuhilfenahme des „Beweisprüfers“ aus Punkt 1der letzten Überlegung) für alle möglichen Wörter w, ob diese ein Beweis π für φsind und hält, wenn es ein solches w gibt. Zähle alle Wörter auf und überprüfe,ob sie ein Beweis sind. Wenn ja, gib den Beweis aus.

Satz 2.41 (Gödels Zweiter Unvollständigkeitssatz). Es gibt wahre Aussagen inTh(N,+,×), die nicht beweisbar sind.

Page 70: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

64 2. Berechenbarkeitstheorie

Beweis. Idee: Angenommen, jede wahre Aussage wäre beweisbar. Wir lassen alsoeine Maschine für eine Aussage φ „parallel“ testen, ob φ oder ¬φ einen Beweishat. Diese Maschine kann dann aber Th(N,+,×) entscheiden, . Also gibt es wah-re Aussagen φ ∈ Th(N,+,×), die nicht beweisbar sind.

Korollar 2.42. Sind eine Sprache L und ihr Komplement semi-entscheidbar, so ist dieSprache entscheidbar.

Beweis. Übung.

Nachdem Satz 2.41 die Existenz von nicht beweisbaren Aussagen gezeigt hat,können wir nun ein konkretes Beispiel angeben.

Satz 2.43. Die Aussage ψ = ¬∃x : φM,0 ist nicht beweisbar (Notation vgl. Beweis zuSatz 2.41).

Beweis. Konstruiere eine Turing-Maschine M:

1. Ermittle die eigene Gödelnummer 〈M〉 (Rekursionstheorem).

2. Konstruiere die Aussage ψ = ¬∃x : φM,0.

3. Führe den Algorithmus P aus Satz 2.40 auf ϕ aus.

4. Wenn dieser akzeptiert, akzeptiere. Wenn er hält und ablehnt, lehne ab.

ψ ist genau dann wahr, wenn M auf die Eingabe „0“ nicht akzeptiert. Wenn Mjedoch einen Beweis für ψ findet, würde es die Eingabe „0“ akzeptieren und ψwäre falsch. Da falsche Aussagen nicht bewiesen werden können, kann dieserFall nicht auftreten. Deshalb kann nur der Fall eintreten, dass M keinen Beweisfür ψ findet und „0“ nicht akzeptiert. Dann ist jedoch ψ wahr.

2.5 Turing-ReduktionDefinition 2.44 (Orakel-Turing-Maschine). Für eine Sprache B ist ein Orakel für Bein externes Gerät, das für eine Turing-MaschineM entscheidet, ob ein Wort w ∈ B. DieTuring-Maschine M mit Zugriff auf dieses Orakel nennen wir Orakel-Turing-Maschineund schreiben MO für Orakel O.

Wir interessieren uns dabei nicht für die Existenz oder Konstruktion des Ora-kels. Für unsere Zwecke reicht es, sich ein Orakel als „Glaskugel“ vorzustellen,die alle richtigen Antworten auf bestimmte Fragen kennt. Wir verwenden dasOrakelkonzept, um Aussagen der Art „Wenn B leicht ist, dann ist es auch A“ zumachen. Wir zeigen dann, dass A leicht ist, indem wir ein Orakel für B verwen-den, welches das Lösen von B tatsächlich sehr einfach macht: Wir müssen ja nurnach der Lösung fragen.

Page 71: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

2.5. Turing-Reduktion 65

Definition 2.45 (Turing-Reduzierbarkeit). Wir schreiben A 6T B, wenn es eine Ora-kel-Turing-MaschineMO gibt, dieA entscheidet, wobeiO ein Orakel für B ist. Wir sagen,A ist relativ zu B entscheidbar.

Satz 2.46. Ist B entscheidbar und A 6T B, so auch A.

Beweis. Sei B entscheidbar. Dann existiert eine Turing-Maschine TB, die B ent-scheidet. Da A 6T B, existiert eine Orakel-Turing-Maschine TBA, die A, unter Zu-hilfenahme eines B-Orakels, entscheidet. Wir ersetzen das Orakel durch TB. T TBAentscheidet A. Da TB eine konkrete Berechnungsvorschrift ist, die man auch in ei-ne andere Turing-Maschine „einsetzen“ kann, existiert eine Turing-Maschine T ′A,die A direkt entscheidet.

Page 72: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

66 2. Berechenbarkeitstheorie

Page 73: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3. Komplexitätstheorie

Kurt Gödel war optimistisch: Er glaubte, dass man Beweise zu Sätzen in einerZeit finden kann, die in der Länge des Satzes „klein“ sind – also etwa quadrati-sche Länge haben.

Mit dieser Vermutung begründete er die Frage nach P vs. NP. Für eine determi-nistische Turing-Maschine M, die für alle Eingaben hält, bezeichnet die Funktionf(n) die (Worst-Case-) Laufzeit, wenn f abbildet auf die maximale Anzahl vonBerechnungsschritten für eine Eingabe der Länge n.

Hinweis.

Wenn nicht explizit angegeben, arbeiten Turing-Maschinen in diesem Kapitel –ohne Beschränkung der Allgemeinheit – auf dem Alphabet Σ = 0, 1. Das Ban-dalphabet Γ enthalte weiterhin noch das Leerzeichen und das Trennzeichen#.

3.1 Der O-Kalkül

In der Informatik wird Komplexität meist asymptotisch betrachtet. Das heißt, diekonkrete Anzahl von Berechnungsschritten zur Lösung eines konkretenProblems ist weniger interessant als das „Verhalten“ des Problems gegenüberverschiedenen Eingaben: „Wenn ich die Eingabelänge verdopple, verdoppelt sichdann auch die Laufzeit des Programms?“

Zur Vereinfachung der Darstellung zieht man Mengen von Funktionen heran:

Page 74: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

68 3. Komplexitätstheorie

Definition 3.1 (Die Funktionenklassen im O-Kalkül).

O(f(n)) = g(n) | ∃c > 0,n0 ∈ N mit 0 6 g(n) 6 c · f(n) für n > n0,o(f(n)) = g(n) | ∀c > 0 ∃n0 ∈ N mit 0 6 g(n) < c · f(n) für n > n0,Ω(f(n)) = g(n) | ∃c > 0,n0 ∈ N mit 0 6 c · f(n) 6 g(n) für n > n0,ω((f(n)) = g(n) | ∀c > 0 ∃n0 ∈ N mit 0 6 c · f(n) 6 g(n) für n > n0,Θ(f(n)) = g(n) | g(n) ∈ O(f(n)) und g(n) ∈ Ω(f(n)).

Die Schreibweise f(n) ∈ O(g(n)) bedeutet dann, dass f höchstens so schnellwächst wie g, bis auf Konstanten. Statt der Bezeichnung „O-Kalkül“ hat sichauch die Bezeichnung Landau-Notation einbebürgert, da die Funktionenklassenauf den Mathematiker Edmund Landau zurückgehen.

Information.

Statt g(n) ∈ O(f(n)) ist auch die Schreibweise g(n) = O(f(n)) üblich. Diese istformal eigentlich nicht korrekt, wie man schnell einsieht.

Die Landau-Notation ist aber nicht nur bei Programmlaufzeiten praktisch. Siekann allgemein zur Beschreibung von Größenverhältnissen herangezogen wer-den.

Beispiel 21 (Das Verhältnis der Fläche eines Kreises zu seinem Umfang).Bezeichne r den Radius eines Kreises, U seinen Umfang und A seine Fläche. DasVerhältnis aus Umfang zu Fläche ist durch 4πA = U2 gegeben. A ist also zu U2

proportional: A ∼ U2, oder A ∈ Θ(U2) in Landau-Notation. (Θ ist aber schwächerals ∼, da A (U2 + 1) ∈ Θ(U2).)

Übrigens . . .

Bezeichne z den Radius einer Pizza und a ihre Höhe, dann berechnet sich ihrVolumen durch V = π · z · z · a.

3.2 ÜbersichtHeutzutage ist es möglich, viele endliche Probleme durch Ausprobieren allermöglichen Lösungen („Brute Force“) zu lösen. Je nach Art und Größe eines Pro-blems kann die dafür benötigte Zeit jedoch stark variieren und mitunter so großsein, dass eine Berechnung nach menschlichen Zeitmaßstäben unmöglich ist. DieKomplexitätstheorie beschäftigt sich damit, den Zeit- und Platzbedarf von Pro-blemen zu quantifizieren.

Auf den ersten Blick mag man verleitet sein, nur diejenigen Probleme als interes-sant zu betrachten, die eine geringe Komplexität besitzen und einfach lösbar sind.Jedoch finden schwierige Probleme insbesondere in der Kryptographie Anwen-dung: Sichere kryptographische Verfahren basieren auf Problemen, von denen

Page 75: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.2. Übersicht 69

man ausgeht, dass sich eine Lösung nicht in Polynomialzeit berechnen lässt unddeshalb zum korrekten Entschlüsseln der richtige Schlüssel notwendig ist.

In der Komplexitätstheorie unterscheidet man zwischen Raum- und Zeitkomplexi-tät, also wie viel Platz (z. B. Zeichen auf dem Band einer Turing-Maschine) oderZeit (z. B. Anzahl der Berechnungsschritte einer Turing-Maschine) benötigt wird.Diese Eigenschaften werden nicht für einzelne Probleminstanzen, sondern viel-mehr asymptotisch in Abhängigkeit von der Eingabegröße des Problems angege-ben.

Je größer die asymptotische Komplexität eines Problems ist, desto „einfacher“lässt sich die Lösung durch die Erhöhung der Problemgröße erschweren. Dergrößte qualitative Unterschied wird im Allgemeinen zwischen polynomiellerund superpolynomieller Komplexität gesehen.

Beispiel 22 (Multiplikation von natürlichen Zahlen).Ein Problem, zu dessen Lösung es Algorithmen mit unterschiedlicher Laufzeit-komplexität gibt, ist zum Beispiel das Problem, zwei ganze Zahlen zu multipli-zieren. Hier ist es so, dass die Antwort auf die Frage, welcher dieser Algorith-men am wenigsten Zeit benötigt um ein solches Problem zu lösen, von der Ein-gabelänge abhängig ist. Für kleine Zahlen ist die Multiplikation, die man übli-cherweise in der Grundschule lernt, ausreichend, ab einem bestimmten Punkt istjedoch z. B. der Karatsuba-Algorithmus effizienter. Für wirklich sehr große Ein-gaben hingegen gibt es einen noch effizientere Algorithmen, beispielsweise denSchönhage-Strassen-Algorithmus. Auch wenn dieser für die meisten praktischenAnwendungen langsamer als die anderen ist, da die Zahlen nicht groß genugsind, so ist er trotzdem im Sinne der Komplexitätstheorie von diesen der besteAlgorithmus.

Bei der Komplexität unterscheidet man beispielsweise zwischen folgenden Kri-terien:

• Worst Case, also der Aufwand für die schwierigste Instanz.

• Average Case, der Mittelwert über alle Eingaben. Das ist interessant, wennetwa fast alle Instanzen eines Problems effizient lösbar sind.

• Best Case, also „mindestens dieser Aufwand“.

Diese Vorlesung beschäftigt sich mit der Worst-Case-Komplexität und determi-nistischen Algorithmen. Weiterhin existieren noch probabilistische Algorithmen,bei denen manche Entscheidungen zufällig getroffen werden. Interessant sind imWesentlichen zwei Komplexitätsklassen: P und NP.

Definition 3.2 (Laufzeit einer deterministischen Turing-Maschine). Es sei M einedeterministische Turing-Maschine, die für alle Eingaben hält. Wir nennen

f(n) = maxw∈0,1n

k |M(w) hält nach (höchstens) k Schritten.

die Laufzeit oder Zeitkomplexität von M.

Page 76: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

70 3. Komplexitätstheorie

Wir betrachten die Laufzeit für eine Turing-Maschine also in der Regel nicht füreine konkrete Eingabe, sondern als das Maximum für alle Eingaben der Länge n.

Information.

Üblicherweise bezeichnet man in der theoretischen Informatik Problemgrößenoder Eingabelängen mit dem Buchstaben n.

Definition 3.3 (Klasse TIME). Es sei t : N → N. Die Komplexitätsklasse TIME(t(n))bezeichnet TIME(t(n)) = L | L ist entscheidbar durch eine Turing-Maschine, die beiEingabelänge n O(t(n)) Schritte benötigt.

Für nichtdeterministische Turing-Maschinen definieren wir die Laufzeit wie folgt:

Definition 3.4 (Laufzeit einer nichtdeterministischen Turing-Maschine). Es sei Meine nichtdeterministische Turing-Maschine, die für alle Eingaben hält. Wir nennen

f(n) = maxw∈0,1n

k |M(w) hält auf jedem Berechnungspfad nach (höchstens) k Schritten.

die Laufzeit oder Zeitkomplexität von M.

Wir betrachten also für eine feste Eingabewmit |w| = n alle möglichen Zustands-folgen, die M abarbeiten kann. Die Folge mit der größten Anzahl Zustandsüber-gängen ist die Laufzeit für die Eingabe w. Das Maxiumum für alle Eingaben w ′

mit |w ′| = n ist die Laufzeit von M in Abhängigkeit von n.

Laufzeit

(a) Laufzeit einer deterministischen Tu-ring-Maschine: Die Länge der längstenBerechnungsfolge für alle Wörter derLänge n.

Laufzeit

(b) Laufzeit einer nichtdeterministischenTuring-Maschine: Die Länge des längstenPfads aller Bäume aller Berechnungsfol-gen für alle Wörter der Länge n.

Information.

Man unterscheidet zwischen nichtdeterministischen und probabilistischen Tu-ring-Maschinen (siehe Definition 3.49). Nichtdeterministische Turing-Maschi-nen haben eine ganze Menge von möglichen Berechnungspfaden. Sie habenaber keinen „Zufallsgenerator“. Bei probabilistischen Turing-Maschinen istdas anders: Ihr Programm kann von einer Zufallseingabe Gebrauch machen.

Page 77: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.2. Übersicht 71

3.2.1 Speed-Up-Sätze

Wir betrachten die Sprache L = 0k1k | k ∈ N. Eine Turing-Maschine, die für einw mit |w| = n entscheidet, ob w ∈ L, könnte folgendermaßen funktionieren:

1. Überprüfe, ob die Eingabe von der Form 0∗1∗ ist.

2. Gehe bis zum ersten Blank-Symbol nach links, streiche eine Null. Gehe biszum ersten Blank-Symbol nach rechts und streiche eine Eins.

3. Wiederhole Schritt 2, bis das Band leer ist und akzeptiere.

Dieser Algorithmus hat offensichtlich quadratische Laufzeit. Die Anzahl derSchritte lässt sich jedoch dadurch verringern, indem die Streichungen „blockwei-se“ vorgenommen werden.

Satz 3.5. Zu jeder Turing-Maschine gibt es eine sprachäquivalente Turing-Maschine, dieum einen konstanten Faktor schneller ist.

Beweis. Idee: Man „verkompliziert“ die Steuerung der Turing-Maschine und ver-größert das Alphabet. So kann man (blockweise) konstant viele Schritte auf ein-mal machen.

Es lässt sich folgender Algorithmus skizzieren, der eine Laufzeit vonO(n · log(n))besitzt:

1. Überprüfe, ob die Eingabe von der Form 0∗1∗ ist.

2. Überprüfe, ob die Eingabe gerade Länge hat.

3. Solange das Band nicht leer ist:

Streiche jede zweite Null.

Streiche jede zweite Eins.

4. Akzeptiere bei leerem Band.

0000 . . . 0111 . . . 1

log n

n

Abbildung 3.2: Arbeitsweise des Algorithmus mit Kompexlität O(n · log(n)).

Page 78: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

72 3. Komplexitätstheorie

Definition 3.6 (k-Band-Turing-Maschine). Eine k-Band-Turing-Maschine verfügt überk verschiedene Arbeitsbänder, je mit eigenem Lese-/Schreibkopf. Ihre Übergangsfunktionist

δ : Q× Γk → Q× Γk × L,R,Nk.

Geht es noch besser? Wir betrachten folgende Algorithmenskizze für eine 2-Band-Turing-Maschine:

1. Kopiere die Eingabe auf das zweite Band.

2. Streiche Nullen von links auf Band 1, streiche Einsen von rechts auf Band 2.

3. Akzeptiere, wenn beide Lese-/Schreibköpfe sich in der Mitte treffen.

Diese Vorgehensweise hat eine nur lineare Laufzeitkomplexität.

0000 . . . 0111 . . . 1

Abbildung 3.3: Laufzeitkomplexität einer Zwei-Band-Turing-Maschine: O(n).

Der Aufwand einer Berechnung hängt also (auch) vom Berechnungsmodell ab.

Satz 3.7. Es sei t(n) > n eine Funktion. Dann lässt sich jede O(t(n))-TIME-k-Band-Turing-Maschine in eine 1-Band-Turing-Maschine übersetzen, die in O(t2(n)) − TIMEläuft.

Beweisidee. Wir schreiben die Bandinhalte nebeneinander durch ein Trennzeichengetrennt auf das Band, ein Sonderzeichen markiert die i-te Kopfposition:

##00101[Kopf 1]0011[Trenn]00 . . . [Kopf i] . . . #

Für jeden einzelnen Schritt der k-Band-Turing-Maschine gehen wir einmal überdas ganze Band. Wird dabei lediglich ein Zeichen durch ein anderes ersetzt, solässt sich der Gesamtaufwand für die Simulation eines Schrittes durchO(t(n)) ab-schätzen. Muss ein Band verlängert oder verkürzt werden, müssen rechts davonstehende Bänder verschoben werden. Auch hier beträgt die Komplexität O(t(n)).Für jeden Schritt der k-Band-Turing-Maschine machen wir also O(t(n))Schritte. Die Ursprungsmaschine macht O(t(n)) Schritte, die Simulation mit ei-nem Band macht daher O(t2(n)) Schritte.

3.2.2 Die Klasse P

Die Komplexitätsklasse P umfasst alle Probleme, die wir als „hinreichend ein-fach“ ansehen.

Page 79: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.2. Übersicht 73

Information.

Komplexitätsklassen sind Mengen von Sprachen. Das bedeutet, dass man,streng genommen, nur bei Entscheidungsproblemen über ihre Zugehörigkeitzu einer bestimmten Komplexitätsklasse sprechen kann. Such-, Optimierungs-und Optimalwertprobleme lassen sich jedoch auf Entscheidungsprobleme zu-rückführen.

Definition 3.8 (Klasse P). P ist die Menge der Sprachen, für die es eine deterministischeTuring-Maschine gibt, die in höchstens p(|x|) Schritten entscheiden kann, ob x ∈ L. Dabeiist p ein beliebiges Polynom.

Also ist P =⋃

k∈N0TIME(nk).

Die Klasse P ist interessant, weil sie unter der Annahme, dass die erweiterteChurch-Turing-These gilt, robust bei der Wahl des Berechnungsmodells ist. Dassein Problem in P ist, sagt nichts darüber aus, ob es einen effizienten Algorithmusgibt, der das Problem löst. So würde ein Problem, für das es einen Algorithmusmit Laufzeitkomplexität O(n17) gibt, zwar P angehören, für hinreichend große naber praktisch nicht lösbar sein. In der Praxis sind Algorithmen mit einer Lauf-zeitkomplexität von O(n3) oftmals schon zu ineffizient.

Problem 3.9 (PRIMES). PRIMES = n ∈ N | n ist eine Primzahl.

Satz 3.10. PRIMES ∈ P.

Beweis. Ohne Beweis.

Beispiel 23 (Primzahlen).Es gilt PRIMES ∈ P. Es gibt also einen Algorithmus, der in polynomieller Lauf-zeit entscheiden kann, ob eine Zahl prim ist oder nicht. Ein solcher Algorithmus(der AKS-Primzahltest) wurde erst 2002 entwickelt. Für ein verwandtes Problem,nämlich das Faktorisieren einer Zahl (also die Darstellung als Produkt von Prim-zahlen) ist kein polynomieller Algorithmus bekannt. Man könnte verleitet sein,anzunehmen, dass für eine ungerade Zahl n > 3 die Probedivision mit allen Zah-len von 3 bis b

√nc einen Algorithmus mit Laufzeitkomplexität von O(

√n) dar-

stellt. Wir beschreiben jedoch mit n nicht eine konkrete Zahl, sondern vielmehrdie Länge der Zahlen – von denen es 9 · 10n−1 der Länge n gibt. Bei dieser Betrach-tungsweise wächst die Anzahl der Zahlen, die kleiner oder gleich n sind, nichtmehr linear, sondern exponentiell.

Problem 3.11 (PATH). PATH = (G, s, t) | G = (V ,E) ist ein gerichteter Graph und esgibt einen Pfad vom Knoten s zum Knoten t.

Beispiel 24.Ein weiteres Problem aus der Kompexitätsklasse P ist PATH. Eine mögliche Be-weisidee für PATH ∈ P sieht folgendermaßen aus:

Page 80: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

74 3. Komplexitätstheorie

1. Markiere die Knoten, die von s aus in einem Schritt erreichbar sind.

2. Markiere die Knoten, die in einem Schritt von einem vorher markiertenKnoten erreichbar sind, bis kein neuer Knoten markiert wurde.

Dieser Algorithmus betrachtet G |V |-mal.

Problem 3.12 (RELPRIME). RELPRIME = (x,y) ∈ N2 | x und y sind teilerfremd.

Beispiel 25.Ebenso ist das Problem RELPRIME ∈ P: Berechne in polynomieller Laufzeit dengrößten gemeinsamen Teiler von x und y mit dem Euklidischen Algorithmus.Akzeptiere, wenn dessen Ergebnis 1 ist (x und y also keinen nichttrivialen ge-meinsamen Teiler besitzen).

Information. Der Euklidische Algorithmus

Es seien a,b ∈ N. Der größte gemeinsame Teiler von a und b lässt sichmit dem Euklidischen Algorithmus mit polynomieller Laufzeitkomplexität(O(log(max(a,b))) Divisionen) folgendermaßen berechnen:

ggT ( a , b ) i f ( b == 0)

re turn a ;e l s e

re turn ggT ( b , a mod b ) ;

Satz 3.13. Alle kontextfreien Sprachen sind in P.

Beweis. Siehe Beweis zu Satz 1.32.

3.2.3 Die Klasse NP

Ebenso wie P ist NP eine Menge von Sprachen. Für NP gibt es viele Definitionen;hier sollen beispielhaft drei vorgestellt werden.

Definition 3.14 (NP 1. Variante). NP ist die Klasse aller Sprachen, die von nichtdeter-ministischen Turing-Maschinen in polynomieller Zeit akzeptiert werden.

Das N von NP steht hier also für nichtdeterministische Turing-Maschinen. Wich-tig ist, dass diese Definition nur Aussagen über die Laufzeit der Turing-Maschi-nen bei Akzeptanz macht.

Page 81: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.2. Übersicht 75

3.2.3.1 Orakelmaschinen

Für die nächste Definition brauchen wir noch einen Begriff, den wir allerdings,da die Definition eher zur Veranschaulichung dient, nur informell formulierenwollen.

Definition 3.15 (Orakel-Turing-Maschine 2. Variante). Eine Orakel-Turing-Ma-schine ist eine Turing-Maschine, die Informationen von einem „Orakel“ beziehen kann.Das Orakel schreibt dabei zunächst auf einen separaten Bandabschnitt irgendeine Zei-chenfolge endlicher Länge. Die Turing-Maschine kann nun die Ausgabe des Orakelseinlesen und diese als Lösung von Problemen annehmen. Da die Ausgabe des Orakelsnichtdeterministisch ist, muss die Turing-Maschine diese Lösung jedoch in der verfügba-ren Rechenzeit überprüfen. Eine Orakel-Turing-Maschine akzeptiert eine Eingabe dabei,wenn es eine Antwort des Orakels gibt, mit der die Maschine akzeptiert.

Hinweis.

Diese Definition einer Orakel-Turing-Maschine scheint zunächst widersprüch-lich zu Definition 2.44. Dort leistet ein Orakel für eine Sprache B „Entschei-dungshilfe“. Hier macht es einen Lösungsvorschlag, beziehungsweise lieferteinen Zeugen (Definition 3.17). Der Sinn des Orakels ist aber bei beiden De-finitionen der gleiche: Durch das Orakel wird ein bestimmtes Problem „ein-fach“. Man interessiert sich nun dafür, welche Konsequenzen das hat. Das Zielhinter Definition 2.44 ist eine Hierarchie auf Entscheidungsproblemen. Hierinteressiert uns allerdings die Frage, ob die Lösung eines Problems wenigs-tens einfach als solche zu erkennen ist, wenn man sie schon „fertig“ geliefertbekommt.

Damit kommen wir zur nächsten Definition:

Definition 3.16 (NP 2. Variante). NP ist die Menge der Sprachen, die in polynomiellerZeit von Orakel-Turing-Maschinen akzeptiert werden können.

Hier ist der nichtdeterministische Anteil der ersten Definition durch das Orakelrepräsentiert. Die letzte Definition schließlich, soll die sein mit der wir in Zukunfthauptsächlich arbeiten möchten.

Definition 3.17 (NP 3. Variante). Eine Sprache L ist genau dann in NP, wenn es eineRelation RL ⊆ (L× 1, 0∗) mit RL ∈ P gibt, wobei

x ∈ L ⇐⇒ ∃y : (x,y) ∈ RL.

Weiterhin muss |y| beschränkt sein durch p(|x|), wobei p wieder ein beliebiges Polynomist. Dabei heißt y Zeuge.

Das y, welches hier Zeuge genannt wird, ist dabei genau das, was das Orakel aus3.15 errät.

Definition 3.18 (KlasseNTIME). NTIME(t(n)) = L | L wird in der ZeitO(t(n)) voneiner nichtdeterministischen Turing-Maschine akzeptiert.) Damit ist NP =

⋃k∈N0

NTIME(nk).

Page 82: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

76 3. Komplexitätstheorie

3.2.3.2 Beispiele

Problem 3.19 (HAMILTONKREIS). Ein Hamilton-Kreis für einen Graphen G = (V ,E) isteine Folge von Knoten v1, . . . , vn, so dass gilt

• Jedes v ∈ V kommt in der Folge v1, . . . , vn genau einmal vor,

• für i = 1, . . . ,n− 1 ist (vi, vi+1) ∈ E und

• (vn, v1) ∈ E.

Das Hamilton-Kreis-Entscheidungsproblem HAMILTONKREIS besteht darin, festzustellen,ob ein gegebener Graph G = (V ,E) einen Hamilton-Kreis besitzt.

Abbildung 3.4: HAMILTONKREIS: Gibt eine eine Rundreise auf dem Graphen, diejeden Knoten genau einmal enthält?

Mysterium.

Ob HAMILTONKREIS ∈ P, ist nicht bekannt.

Problem 3.20 (EULERKREIS). Ein Eulerkreis für einen GraphenG = (V ,E) ist eine Folgevon Knoten v1, v2, . . . , vm, sodass gilt

• v1 = vm.

• Für i = 1, . . . ,m− 1 ist (vi, vi+1) ∈ E, und: jede Kante in E kommt genau einmalin dieser Folge von Kanten vor.

Ein Eulerkreis ist also eine Rundreise durch einen Graphen, auf welcher jede Kante genaueinmal auftaucht.

Satz 3.21. EULERKREIS ∈ P.

Beweis. Übung.

Problem 3.22 (COMPOSITE). COMPOSITE = x ∈ N | x = p · q für p,q ∈ N \ 1.

Satz 3.23. COMPOSITE ∈ P.

Page 83: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.2. Übersicht 77

Abbildung 3.5: EULERKREIS: Gibt es eine Rundreise durch den Graphen, auf demjede Kante genau einmal liegt? EULERKREIS liegt in P.

Beweis. Folgt direkt aus PRIMES ∈ P.

Problem 3.24 (SUBSET SUM). Gibt es für S = x1, . . . , xn und t ∈ N0 eine Mengey1, . . . yl ⊆ S mit

∑li=1 yi = t?

Hinweis.

Es gibt auch Definitionen von SUBSET SUM, die eine Gewichtsfunktion für dieElemente von S beinhalten.

3.2.3.3 coNP = NP?

Definition 3.25 (coNP). Es sei L eine Sprache.

coNP = L | L ∈ NP

ist die Klasse aller Sprachen, deren Komplement in NP liegt.

Information.

Es gilt nicht NP = coNP! Vielmehr ist NP ∩ coNP 6= ∅, da beispielsweise P ⊆ NP

und P ⊆ coNP. Offen ist, ob coNP = NP.

Es existiert ein Zusammenhang zu dem P?= NP-Problem: Sei L eine Sprache. Ist

L ∈ P, so ist auch L ∈ P. Daher gilt P = NP ⇒ coNP = NP.

3.2.4 Ein Ausflug in andere Welten

1995 hat Russel Impagliazzo fünf verschiedene "‘Welten"’ vorgestellt, in denenwir leben könnten, abhängig davon, welche Antworten auf die noch ausstehen-den Probleme sich als korrekt erweisen. Das hat vor allem Einfluss auf alle kryp-tographischen Ergebnisse. Diese Welten sind:

Page 84: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

78 3. Komplexitätstheorie

1. Algorithmica: Es gilt P = NP.In dieser Welt gäbe es keine sicheren kryptographischen Verfahren, bei de-nen die Schlüssellänge kürzer als die Nachricht ist. Es blieben nur Verfahrenwie das One-Time-Pad (siehe Definition 4.5.2.1).

2. Heuristica: Es gilt P 6= NP, aber jedes NP-vollständige Problem ist im „ave-rage case“ in polynomieller Zeit lösbar.Eine Folge wäre, dass das Finden schwieriger Probleme selbst ein schwieri-ges Problem ist, insbesondere also auch das Finden effizienter und sicherekryptographischer Verfahren.

3. Pessiland:

NP-Probleme sind „hard on average” (und damit ist P 6= NP), es gibt aberkeine Einwegfunktionen. (Einwegfunktionen sind noch zu definieren undstellen eine Voraussetzung für die meisten kryptographischen Systeme –insbesondere Secret-Key- und Public-Key-Verschlüsselung dar.) Pessilandvereint die Nachteile der anderen Welten: NP-Probleme sind schwierig, abernicht nutzbar für kryptographische Zwecke.

4. Minicrypt: Es gilt P 6= NP, Einwegfunktionen existieren, aber keine Public-Key-Kryptographie.Symmetrische Kryptographie hingegen ist in dieser Welt möglich.

5. Cryptomania: Es gilt P 6= NP, Einwegfunktionen und Public-Key-Kryptogra-phie existieren.Zur Zeit verhalten wir uns so, als ob wir uns in dieser Welt befänden. Dieheute verwendete Public-Key-Kryptographie basiert auf Problemen, vondenen angenommen wird, dass sie nicht effizent lösbar sind. Nach allge-meiner Meinung ist die Wahrscheinlichkeit hoch, dass wir uns in dieserWelt befinden.

3.3 NP-VollständigkeitTrivialerweise gilt P ⊆ NP, weshalb Aussagen wie „Die Sprache L ist in NP“ inder Regel wenig aussagekräftig sind. Interessant sind die Probleme, die unter derAnnahme P 6= NP in NP \ P liegen würden. Im Folgenden bezeichnet „6“ eineMany-one-Reduktion, bei der die Transformationsfunktion f in Polynomialzeitberechenbar ist.

Definition 3.26 (NP-Schwere). Seien L,L ′ Sprachen. L heißt NP-schwer (englisch:NP-hard), wenn

∀L ′ ∈ NP : L ′ 6 L

gilt.

Zur Erinnerung: Many-one-Reduzierbarkeit ist nicht gleich Turing-Reduzierbar-keit: Dort gilt: L 6T L ′ falls Lmit einer Orakel-Turing-MaschineMO mit OrakelO,das L ′ entscheidet, entschieden werden kann. Ob die Klasse NPmit polynomiellerTuring-Reduzierbarkeit größer würde, ist unbekannt.

Page 85: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.3. NP-Vollständigkeit 79

Übrigens . . .

Eine NP-schwere Sprache muss nicht selbst in NP sein (im Gegensatz zu NPC,Definition 3.27). Beispielsweise ist das Halteproblem NP-schwer, aber nicht inNP.

Definition 3.27 (NP-Vollständigkeit). Eine Sprache L heißt NP-vollständig (englisch:NP-complete), wenn

1. L ∈ NP und

2. ∀L ′ ∈ NP : L ′ 6 L, L also NP-schwer ist.

Die Menge der NP-vollständigen Sprachen (englisch NP-complete) ist

NPC = L ∈ NP | ∀L ′ ∈ NP : L ′ 6 L.

3.3.1 Der Satz von Cook

Ein Paradebeispiel für eine Sprache, die in NP liegt, ist die Sprache der erfüll-baren aussagenlogischen Formeln, also derjenigen aussagenlogischen Formeln,für die man die Variablen so belegen kann, dass die Formel wahr wird. Hat maneinen solchen Ausdruck in konjunktiver Normalform (KNF) gegeben, sowie ei-ne Belegung der Variablen, so dass die Formel zu wahr auswertet, kann man inpolynomieller Zeit überprüfen, ob die Belegung korrekt ist. Hingegen ist der Be-weis dafür, dass eine Formel nicht erfüllbar ist, sehr schwierig. Man muss für alleBelegungen zeigen, dass diese die Formel nicht erfüllen.

Um zu zeigen, dass für eine Sprache L ∈ NPC gilt, muss man also zeigen, dass alleSprachen in NP auf dieses Problem polynomiell reduzierbar sind. Dass es über-haupt eine Sprache gibt, die dieses Kriterium erfüllt, wurde 1971 von StephenA. Cook bewiesen. Die Definition von NPC offenbart das grundlegende Problem:Man muss für eine Sprache L ′ zeigen, dass sich alle anderen Sprachen aus NP aufsie reduzieren lassen. Eine polynomielle Transformation für jede Sprache anzu-geben ist offensichtlich unmöglich. Cook wählte deshalb einen anderen Weg: Fürjede Sprache L ∈ NP gibt es nach Definition eine Orakel-Turing-Maschine ML,die L entscheidet. Der Beweis besteht nun darin, die Arbeitsweise von ML durchpolynomielle Transformation in einer aussagenlogischen Formel auszudrücken.

Die Einschränkung auf Ausdrücke in KNF ist zulässig, da wir die Worst-Case-Komplexität betrachten und es sich zeigen lässt, dass alle anderen Fälle einfachersind.

Definition 3.28 (Kurzzusammenfassung: Semantik der Aussagenlogik). Sei Σ einAlphabet (in der Logik: eine Signatur). Dann sind 0, 1 und alle s ∈ Σ Atome. 0, 1 undalle s ∈ Σ sind aussagenlogische Formeln. Sind A und B Formeln, so auch A∧ B (Kon-junktion), A∨ B (Disjunktion), ¬A (Negation). ¬ bindet stärker als ∧, ∧ bindet stärker

Page 86: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

80 3. Komplexitätstheorie

als ∨. Klammern ist nach den üblichen Regeln erlaubt. Die binären Verknüpfungen sindkommutativ. Statt ¬x schreiben wir auch x.

Eine Belegung oder Interpretation ist eine Abbildung von Variablen auf Wahrheitswerte:I : Σ → wahr, falsch. Die Auswertung einer Formel über einer Belegung ist einWahrheitswert wahr oder falsch gemäß folgender Regeln:

• 0 7→ falsch, 1 7→ wahr,

• ¬wahr = falsch, ¬falsch = wahr,

• wahr∧ wahr = wahr, wahr∧ falsch = falsch, falsch∧ falsch = falsch,

• wahr∨ wahr = wahr, wahr∨ falsch = wahr, falsch∨ falsch = falsch.

Information.

Die Implikation → kann mit ∨ und ¬ erklärt werden: A → B = ¬A∨ B. DieÄquivalenz↔ ergibt sich durch A↔ B = A∧B∨A∧B = (A→ B)∧ (B→ A).

Definition 3.29 (Erfüllbare Formel). Eine Formel heißt erfüllbar, wenn eine erfüllen-de Belegung existiert, so dass sie zu wahr auswertet.

Definition 3.30 (Konjunktive Normalform). Ein Literal ist ein Atom oder ein negier-tes Atom. Eine Formel ist in konjunktiver Normalform (KNF), wenn sie eine Konjunktionvon Disjunktionen von Literalen ist.

Problem 3.31 (SAT). Sei φ eine aussagenlogische Formel. Das Entscheidungsproblem„Ist φ erfüllbar?“ heißt SAT (von englisch satisfiability).

Satz 3.32 (Satz von Cook). SAT ∈ NPC.

Beweis. Zuerst ist zu zeigen, dass SAT ∈ NP. Sei o. B. d. A. φ eine aussagenlogischeFormel in KNF mit a Klauseln und b Literalen. Dann lässt sich für eine gegebeneInterpretation in O(a · b) prüfen, ob φ zu wahr auswertet. Damit ist gezeigt, dassSAT ∈ NP. Nun müssen wir für ein beliebiges Problem aus NP zeigen, dass diesesin polynomieller Zeit auf SAT reduzierbar ist. Sei also L eine beliebige Sprache mitL ∈ NP, sowieML die Orakel-Turing-Maschine (Definition 3.15), die L entscheidet.

Wir konstruieren nun eine aussagenlogische Formel, die genau dann erfüllbarist, wenn ML durch eine zulässige Folge von Zustandsübergängen die Eingabe xentscheidet.

Als Vorüberlegung machen wir uns klar, dass ML bei Eingabe x mit |x| = n p(n)

Berechnungsschritte machen kann, wobei p ein Polynom ist. Entsprechend istauch die Anzahl der benutzten Bandfelder (zu denen noch die konstant langeAusgabe des Orakels kommt) durch p(n) begrenzt. Da wir eine polynomielleTransformation angeben, ist auch die Anzahl der Klauseln polynomiell in n be-schränkt.

O. B. d. A. habeML die Zustände q0, . . . ,qg und es sei γl das l-te Zeichen aus Γ mit|Γ | = d. Wir definieren folgende Literale:

Page 87: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.3. NP-Vollständigkeit 81

• qi,tj = 1, wenn sichML zum Zeitpunkt tj (0 6 j 6 e) im Zustand qi befindet,sonst 0.

• sk,tj,l = 1, wenn sich zum Zeitpunkt tj an der Stelle 0 6 k 6 f das Zeichen γlbefindet, sonst 0.

Offensichtlich sind f und e nach den Vorüberlegungen durch p(n) beschränkt undl ∈ 0, . . . ,d− 1. Wir können eine akzeptierende Zustandsfolge unter Zuhilfenah-me der eben definierten Literale folgendermaßen darstellen:

q0,t0 ,q1,t0 , . . . ,qg,t0 , s0,t0,0, . . . , s0,t0,d−1, . . . , sf,t0,0, . . . , sf,t0,d−1

...q0,te ,q1,te , . . . ,qg,te , s0,te,0, . . . , s0,te,d−1, . . . , sf,te,0, . . . , sf,te,d−1

Jede Zeile entspricht einen Berechnungsschritt, in den Spalten sind der aktuelleZustand und der momentane Bandinhalt angegeben. Wir setzen t0 als Start-, teals Endzeitpunkt, q0,t0 = 1 und qi,t0 = 0 für alle i 6= 0, da ML als deterministischeTuring-Maschine per Konvention genau einen Startzustand, nämlich q0, hat.

Analog muss in jeder Bandzelle zu jedem Zeitpunkt genau ein Zeichen aus Γstehen:

∧j∈0,...,e,k∈0,...,f

∨l∈0,...,d−1

sk,tj,l ∧

∧a,b∈0,...,d−1,a6=b

(sk,tj,a ∨ sk,tj,b)

Auf den Bandfeldern mit den Indizes 0 bis n− 1 steht zum Startzeitpunkt t0 dieEingabe x, an den Stellen n bis f die Ausgabe des Orakels. Wir legen weiter-hin o. B. d. A. fest, dass nicht der Kopf der Turing-Maschine, sondern stattdessendas Band bewegt wird. Für eine Bewegung des Kopfes nach links wird also dasBand nach rechts verschoben (und umgekehrt). Wir definieren wir die Literale(c0,tj , c1,tj), die für die Richtungsänderung des Lese-/Schreibkopfs stehen:

(c0,tj , c1,tj) =

(0, 0) für tj → tj+1 keine Bewegung(1, 0) für tj → tj+1 Bewegung nach links(0, 1) für tj → tj+1 Bewegung nach rechts.

Im Weiteren möchten wir nun für jede der definierten Literale eine Formel erstel-len, der überprüft, ob ein Schritt der Turing-Maschine gültig ist.

Das Band

Die Gültigkeit der Bandbewegung lässt sich folgendermaßen mit einer aussagen-logischen Formel pro Alphabetsymbol γl ∈ Γ ausdrücken:

(c0,tj ∨ c1,tj)∧ Entweder c0,tj oder c1,tj muss falsch sein((c0,tj ∧ c1,tj)→ (sk,tj+1,l ↔ sk,tj,l))∧ Kopf bewegt sich nicht((c0,tj ∧ c1,tj)→ (sk−1,tj+1,l ↔ sk,tj,l))∧ Kopf bewegt sich nach links((c0,tj ∧ c1,tj)→ (sk+1,tj+1,l ↔ sk,tj,l)) Kopf bewegt sich nach rechts

Page 88: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

82 3. Komplexitätstheorie

Wir brauchen also pro Feld auf dem Band eine Formel mit konstanter Anzahl anKlauseln, um zu überprüfen, ob ein Schritt gültig ist.

Zustandsübergänge

Als nächstes überlegen wir uns aus der Zustandsübergangsfunktion Terme, dieüberprüfen, ob ein Schritt gültig ist. Allgemein wird dabei eine Regel der Form

δ(qi, v, x) = (qp,w) mit v,w ∈ Γ , x ∈ N,L,R

umgewandelt zu einem Term der Form:

(qi,tj ∧ (sk,tj,l ↔ v))→ (sk,tj+1,m ↔ w)∧ c0,tj ∧ c1,tj ∧ qp,tj+1 für x = N

(qi,tj ∧ (sk,tj,l ↔ v))→ (sk,tj+1,m ↔ w)∧ c0,tj ∧ c1,tj ∧ qp,tj+1 für x = L

(qi,tj ∧ (sk,tj,l ↔ v))→ (sk,tj+1,m ↔ w)∧ c0,tj ∧ c1,tj ∧ qp,tj+1 für x = R

Formt man diesen Ausdruck in eine KNF um, so erhält man wieder eine kon-stante Anzahl an Klauseln pro Ableitungsregel und verwendetem Feld auf demBand.

Eindeutigkeit des Zustands und Finalzustände

Als Nächstes wollen wir sicherstellen, dass wir uns zu einem beliebigen Zeit-punkt immer nur in einem Zustand befinden. Dafür formulieren wir für alle Zeit-punkte tj folgende Formel:

(q0,tj ∨ . . .∨ qg,tj)∧∧v 6=w

(qv,tj ∨ qw,tj)

Diese Formel enthält n2 + 1 KlauselnAls letztes wollen wir noch eine weitere Formel definieren, der garantiert, dasswir uns am Ende in einem Finalzustand befinden. Sei also F die Menge der Final-zustände, dann muss gelten: ∨

qi∈Fqi,te

Ergebnis

Wir haben also ein beliebiges Entscheidungsproblem aus NP polynomiell auf eineInstanz von SAT reduziert. Daraus folgt, dass SAT ∈ NPC.

3.3.2 Der schmale Grat

Oft sind sehr ähnlich aussehende Probleme in sehr unterschiedlichen Komplexi-tätsklassen. Darunter zum Beispiel:

Page 89: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.4. Ausgewählte Probleme in NP 83

Probleme in P Probleme in NPC

Existenz eines Eulerkreis Existenz eines Hamilton-KreisesEin Eulerkreis ist ein Zyklus Ein Hamilton-Kreis ist ein Zyklusin einem Graphen, der alle Kanten in einem Graphen, der alle Knotengenau einmal enthält. genau einmal enthält.Existenz unärer Partitionen Existenz binärer PartitionenGegeben A = a1, . . . ,an ⊆ N. Gegeben A = a1, . . . ,an ⊆ N.jeweils unär kodiert. jeweils binär kodiert.Gibt es ein A ′ ⊆ A mit Gibt es ein A ′ ⊆ A mit∑A ′ =

∑A \A ′?

∑A ′ =

∑A \A ′?

Graphen-Zweifärbbarkeit Graphen-DreifärbbarkeitEin Graph ist 2-färbbar, wenn man Ein Graph ist 3-färbbar, wenn manjedem Knoten eine von zwei Farben jedem Knoten eine von drei Farbenzuordnen kann, so dass benachbarte zuordnen kann, so dass benachbarteKnoten nie dieselbe Farbe haben. Knoten nie dieselbe Farbe haben.

Abbildung 3.6: Gegenüberstellung von P- und NPC-Problemen.

3.3.3 P?= NP

Es gibt verschiedene Standpunkte zu dem Thema P ?= NP. Man könnte etwa sa-

gen, dass es so viele Probleme in NPC gibt, dass einfach zu zeigen sein müsste,dass eines davon in P liegt. Andererseits könnte man auch sagen, dass die Pro-bleme in NPC aus der Sicht der Komplexitätstheorie alle so ähnlich sind, dass sieauch wahrscheinlich gleich schwierig zu lösen sind. Allgemein wird angenom-men, dass P 6= NP gilt.

3.3.3.1 Schwierigkeiten

Warum ist es nun so schwierig zu beweisen, wie sich P zu NP verhält? Das liegtdaran, dass ein Beweis für P 6= NP zwar nicht unmöglich ist, aber zumindest be-sondere Beweisverfahren erfordert. Man spricht hier von nicht relativierenden Be-weisen. Ein Beweis, der eine Beziehung zwischen zwei Komplexitätsklassen zeigt,ist relativierend, wenn er weiterhin gültig ist, wenn man zu beiden Klassen einbeliebiges Orakel hinzufügt. Hätte man etwa für zwei Klassen K und L gezeigt,dass diese gleich sind, also dass K = L gilt und derselbe Beweis auch KO = LO

für ein beliebiges Orakel O zeigt, so ist dies ein relativierender Beweis. Dabei istAO die Klasse A mit zusätzlichem O-Orakel. Es wurde aber gezeigt, dass es Ora-kel A und B gibt, für die jeweils gilt: PA = NPA bzw. PB 6= NPB. Das heißt, dassjeder relativierende Beweis zu einem Widerspruch führen würde, weshalb sichdiese Klasse an Beweisen hier nicht verwenden lässt. Die meisten üblichen Be-weistechniken wie z. B. die Diagonalisierung sind leider relativierend: Man kanneiner Turing-Maschine ein beliebiges Orakel hinzufügen, und diese kann ihr ei-genes Halteproblem weiterhin nicht lösen.

3.4 Ausgewählte Probleme in NP

Viele interessante Probleme der Informatik sind in NP, viele davon sogar in NPC.Einige ausgewählte sollen hier (teilweise ohne Beweis) genannt werden.

Page 90: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

84 3. Komplexitätstheorie

3.4.1 NP-Vollständigkeit zeigen

Um für eine Sprache L zu zeigen, dass L ∈ NPC gilt, reicht es, für eine beliebigeSprache L ′ ∈ NPC zu zeigen, dass L ′ 6 L und L ∈ NP gilt, also L ′ auf L poly-nomiell reduziert werden kann und L in NP ist. Da insbesondere für L ′ schon ge-zeigt wurde, dass sich alle Probleme aus NP auf L ′ polynomiell reduzieren lassen,folgt aus der Transitivität der Reduzierbarkeit sofort, dass dies auch für L gilt. DaSAT ∈ NPC bereits gezeigt wurde, können wir nun SAT auf weitere NP-Problemereduzieren und so zeigen, dass sie in NPC sind.

3.4.2 3-SAT

Problem 3.33 (3-SAT). Sei φ eine aussagenlogische Formel in KNF, bei der jede Klauselaus höchstens drei Literalen besteht. Hat φ eine erfüllende Belegung?

Beispiel 26 (Eine Beispiel-Instanz für 3-SAT).

(a∨ b∨ c)︸ ︷︷ ︸einzelne Klausel

∧ (a∨ b∨ d)

Satz 3.34. 3-SAT ∈ NPC.

Beweis. Man sieht einfach, dass diese Sprache in NP liegt, es muss also noch ge-zeigt werden, dass 3-SAT ∈ NPC ist. Wir wollen also nun eine allgemeine aus-sagenlogische Formel in KNF in eine umformen, die höchstens drei Literale proKlausel hat und genau dann erfüllbar ist, wenn die ursprüngliche Formel aucherfüllbar ist. Gegeben sei also eine Formel der Form

(v1,1 ∨ v1,2 ∨ . . .∨ v1,k1)∧ . . .∧ (vm,1 ∨ vm,2 ∨ . . .∨ vm,km)

Wir formen die Klauseln nach folgenden Regeln um:

1. Klauseln mit einem Literal der Form (x) werden zu (x∨ x∨ x) umgeformt.

2. Klauseln mit zwei Literalen der Form (x∨ y) werden zu (x∨ y∨ x) umge-formt.

3. Klauseln mit drei Literalen werden unverändert belassen.

4. Für eine Klausel ci mit ki > 3 Literalen gehen wir folgendermaßen vor: Wirdefinieren uns neue Literale

ai,1,ai,2, . . . ,ai,ki−3

und formen mit deren Hilfe die Klausel um:

(vi,1 ∨ vi,2 ∨ · · ·∨ vi,ki)

wird zu

(vi,1 ∨ vi,2 ∨ ai,1)∧ (ai,1 ∨ vi,3 ∨ ai,2)∧ · · ·∧ (ai,ki−3 ∨ vi,ki−1 ∨ vi,ki).

Page 91: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.4. Ausgewählte Probleme in NP 85

In den Fällen 1 bis 3 entstehen keine neuen Literale oder zusätzliche Klauseln, imvierten für eine Klausel mit k Literalen k− 2 neue Klauseln mit jeweils drei Lite-ralen und insgesamt k− 3 neue Literale. Zwei benachbarte Klauseln haben dabeijeweils eines der neuen Literale gemeinsam, wobei es in einer der beiden Klau-seln jeweils negiert ist. Die neuen Literale bewirken also, dass jeweils eine vonzwei benachbarten Klauseln mit Sicherheit wahr ist. Da es jedoch k− 2 Klauseln,aber nur k− 3 neue Literale gibt, kann keine Belegung der neuen Literale die gan-ze Formel wahr werden lassen, wenn alle anderen Klauseln falsch sind. Es mussmindestens eines der schon existierenden Literale wahr sein. Dies ist aber genaudie Bedingung dafür, dass die ursprüngliche Klausel wahr ist. Verfährt man somit allen Klauseln, erhält man eine Formel, die genau drei Literale pro Klauselhat und genau dann erfüllbar ist, wenn die ursprüngliche Formel erfüllbar ist.Wir haben damit also eine beliebige SAT-Instanz auf eine 3-SAT-Instanz reduziert.Da wir für eine Klausel mit k > 3 Literalen k− 2 Klauseln mit k− 3 Literalen er-zeugen müssen, ist diese Reduktion polynomiell. Daraus folgt, dass 3-SAT auchNP-vollständig ist.

3.4.3 CLIQUE

Problem 3.35 (CLIQUE). Sei G = (V ,E) ein Graph und k ∈ N mit k 6 |V |. Gibt es einV ′ ⊆ V mit |V ′| > k, sodass (i, j) ∈ E für alle i 6= j ∈ V ′ gilt?

Satz 3.36. CLIQUE ∈ NPC.

Beweis. Offensichtlich gilt CLIQUE ∈ NP, da für gegebenes V ′ in O(V ′2) geprüftwerden kann, ob V ′ eine Clique und |V ′| > k ist.

Wir zeigen die Reduktion CLIQUE > 3-SAT:Sei φ = (x11 ∨ x12 ∨ x13) ∧ · · · ∧ (xk1 ∨ xk2 ∨ xk3) eine 3-SAT-Instanz mit k Klau-seln und xi1, xi2, xi3 (i = 1, . . . ,k) jeweils Literale. Wir konstruieren einen GraphenG = (V ,E), indem wir für jedes xij (i = 1, . . . ,k, j = 1, 2, 3) einen Knoten zu V

hinzufügen. Wir setzen

E = (xop, xqr) | o 6= q, xop 6= xqr.

E besteht also genau aus den Literal-Paaren, die nicht in der selben Klausel vor-kommen und widerspruchsfrei erfüllbar sind (also xop und xqr entweder ein un-terschiedliches Atom repräsentieren bzw. dasselbe Atom beide Male negiert bzw.nicht negiert). φ ist genau dann erfüllbar, wenn es in G eine Clique der Größe kgibt, da jede Clique genau ein Literal je Klausel beinhaltet und dieses ohne Wi-dersprüche erfüllbar ist.

Page 92: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

86 3. Komplexitätstheorie

Beispiel 27.

x11 x12 x13

x21 x22 x23

x31 x32 x33

Abbildung 3.7: CLIQUE-Graph für φ = (a∨ b∨ c)∧ (a∨ b∨ c)∧ (a∨ b∨ c).Wir lesen aus der eingezeichneten Clique eine erfüllende Interpretation

a = b = wahr ab.

3.4.4 FaktorisierenEin wichtiges Problem, von dem unter anderem die Sicherheit des RSA-Algorith-mus abhängt, ist das Faktorisieren von natürlichen Zahlen. Die Frage nach derPrimfaktorzerlegung einer Zahl ist kein Entscheidungsproblem, kann jedoch alssolches formuliert werden:

Problem 3.37 (FACTOR). Seien n,k,k ′ ∈ N. Hat n einen Primfaktor k ′ 6 k?

Durch Variieren von k lassen sich mit einem Algorithmus, der FACTOR entscheidet,die entsprechenden Primfaktoren gewinnen. Es gilt FACTOR ∈ (NP ∩ coNP).

3.4.5 Graph-FärbbarkeitProblem 3.38 (COLOR). Sei G = (V ,E) ein ungerichteter Graph und k ∈ N. Lassen sichalle v ∈ V mit k Farben färben, sodass für alle (vi, vj) ∈ E vi und vj unterschiedlicheFarben haben?

COLOR mit k = 3 wird auch 3COLOR oder Graph-Dreifärbbarkeitsproblem genannt:

Problem 3.39 (3COLOR). Sei G = (V ,E) ein ungerichteter Graph. Lassen sich alle v ∈ Vmit drei Farben färben, sodass für alle (vi, vj) ∈ E vi und vj unterschiedliche Farbenhaben?

Satz 3.40. 3COLOR ∈ NPC.

Beweis. Um zu zeigen, dass dieses Problem NP-vollständig ist, wollen wir zei-gen, dass 3-SAT darauf reduzierbar ist. Dass 3COLOR ∈ NP ist wieder einfach zuerkennen.

Wir wollen aus einer Instanz von 3-SAT eine Instanz des Graph-Dreifärbbarkeits-Problems erstellen, sodass der entstehende Graph genau dann dreifärbbar ist,wenn die Formel der 3-SAT-Instanz erfüllbar ist. Bei den Farben legen wir unsauf T , F,O für true, false und other fest. Die Farben sind grundsätzlich freiwählbar.

Page 93: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.4. Ausgewählte Probleme in NP 87

3.4.5.1 Hilfsgraph

Es sei φ eine 3-SAT-Instanz mit den Literalen x1, x2, . . . , xn. Wir konstruieren zu-nächst den unter Abbildung 3.8 dargestellten Graphen. Dieser hat drei verbun-dene Knoten, die mit O, T sowie F beschriftet und als Dreieck angeordnet sind.Damit dieser Graph dreigefärbt werden kann, müssen diese drei Knoten jeweilsunterschiedliche Farben haben. Desweiteren erstellen wir für jedes Literal xi zweiweitere verbundene Knoten, die mit xi bzw. xi beschriftet und beide mit dem mitO beschrifteten Knoten verbunden sind. Dabei ist die Färbung der Knoten O, Tund F jeweils zwar noch nicht vorgegeben; da eine Permutation der Farben dieFärbbarkeit eines Graphen jedoch nicht ändert, können wir o. B. d. A. die gewähl-te Darstellung annehmen.

x1 x1 x2 x2 xn xn

O

FT

etc.

Abbildung 3.8: Hilfsgraph für 3-SAT.

3.4.5.2 Dreieck und Propeller

Die nächste Struktur, die wir betrachten, ist ein einfaches Dreieck, das an zweiEcken noch jeweils mit einem weiteren Knoten (hier x und y) verbunden ist.

k1

k2

k3

x

y

Abbildung 3.9: Dreieck mit verbundenen Ecken.

Angenommen, wir färben zuerst x und y ein. Dann erkennen wir, dass die Farbevon k3 genau dann eindeutig bestimmt ist, wenn x die gleiche Farbe wie y hat.Nun betrachten wir einen „Propeller“, der aus zwei solchen verbundenen Dreie-cken aufgebaut ist.

Page 94: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

88 3. Komplexitätstheorie

m1 m2

x

y z

F

Abbildung 3.10: „Propeller“.

In diesem Graphen sollen nun wieder die Knoten x,y und z jeweils entweder mitT oder F eingefärbt werden. Für ein einzelnes Dreieck gilt, dass der Knoten, dermit dem anderen Dreieck verbunden ist, genau dann in seiner Farbe festgelegt ist,wenn die zwei Knoten, die an dieses Dreieck angefügt wurden, die gleiche Farbehaben. Sind also etwa x,ymit T eingefärbt, so müssen die beiden Knoten, die mitx und y verbunden sind, jeweils mit F und O eingefärbt sein und demnach m1

auch mit T . Da aber ein Eck des anderen Dreiecks mit einem Knoten verbundenist, der mit F eingefärbt ist, ist m2 nur dann festgelegt, wenn z auch mit F einge-färbt ist. Nicht dreifärbbar ist dieses Konstrukt also nur in einem Fall: Wenn alleverbundenen Knoten mit F eingefärbt sind.

O

T

F F

O

T

x

y z

Fgeht nicht

Abbildung 3.11: „Propeller“, Ecken verbunden und ungültig eingefärbt.

Ein „Propeller“ ist also genau dann dreifärbbar, wenn mindestens einer der ver-bundenen Literal-Knoten nicht die Farbe F hat. Wir verwenden den „Propeller“,um eine einzelne Klausel einer 3-SAT-Instanz zu repräsentieren. Damit wir dieentsprechenden Bedingungen für die Knoten, die die Literale darstellen, erfüllen(sie dürfen z. B. nicht mitO eingefärbt werden), sowie mehrere dieser Teilgraphenkombinieren können, verbinden wir entsprechend viele „Propeller“ mit dem zu-vor konstruierten Hilfsgraphen. In Abbildung 3.12 ist dabei der Graph mit dem„Propeller“ der Klausel (x1 ∨ x2 ∨ xn) dargestellt.

Page 95: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.4. Ausgewählte Probleme in NP 89

x1 x1 x2 x2 xn xn

O

FT

etc.

Abbildung 3.12: Hilfsgraph mit einem „Propeller“.

Man sieht nun, dass man weitere solche Propeller anfügen kann, sodass man fürjede 3-SAT-Instanz φ einen Graphen bauen kann, der genau dann dreifärbbar ist,wenn φ erfüllbar ist. Man sieht einfach ein, dass die Reduktion von 3-SAT auf3COLOR polynomiell ist, weshalb 3-SAT 6 3COLOR und somit 3COLOR ∈ NPC ist.

3.4.6 Hamilton-Pfade

Problem 3.41 (HAMPATH). HAMPATH = (G, s, t) | G ist ein gerichteter Graph mit einemHamilton-Pfad von s nach t

Hinweis.

Analog zum Hamilton-Kreis ist ein Hamilton-Pfad ein Pfad, auf dem jederKnoten des Graphen genau einmal vorkommt. Ein Hamiltonkreis ist dann einspezieller Hamilton-Pfad mit s = t.

Satz 3.42. HAMPATH ∈ NPC.

Beweis. Wie in Tabelle 3.6 bereits zu sehen ist (und auch sonst klar sein dürfte), istHAMPATH ∈ NP. Wir zeigen nun, dass auch HAMPATH ∈ NPC gilt, indem wir 3-SAT

auf HAMPATH reduzieren. Wir gehen dazu folgendermaßen vor:

1. Sei φ = (a1∨b1∨ c2)∧ · · ·∧ (ak∨bk∨ ck) eine 3-SAT-Instanz mit kKlauseln.Jedem a,b und c entspricht dabei ein Literal xi oder xi. Für jedes dieser xifügen wir einen diamantförmigen Teilgraphen wie in Abbildung 3.13 in Gein.

Page 96: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

90 3. Komplexitätstheorie

xi

etc.

Abbildung 3.13: Für jedes Literal xi wird ein „Diamant“ erstellt. Es gibt genaueinen je Hamilton-Pfad für xi = true oder xi = false.

. . .

. . . . . .

xi

. . . . . .

Abbildung 3.14: In einem Diamanten gibt es für jede Klausel, in der das zugehö-rige Literal vorkommt, ein Knotenpaar. Dazwischen liegen Trennknoten.

Wenn xi (xi) in cj vorkommt, erweitern wir den Graphen um zwei Kantenwie in Abbildung 3.16 (3.17).

2. Jeder diamantförmige Teilgraph aus Schritt 1 besteht aus 3k+1Knoten. AlleKlauseln ci sind dabei über einen Trennknoten miteinander verbunden, wieAbbildung 3.14 zeigt.

Es bleibt noch zu zeigen, dass es genau dann einen Hamilton-Pfad von s nach tin G gibt, wenn φ erfüllbar ist. Angenommen, φ ist erfüllbar. Dann gibt es (unterVernachlässigung der Knoten für die Klauseln) einen Pfad von s nach t. Für je-den diamantförmigen Teilgraphen, der einem Literal xi entspricht, muss es dazu,wenn xi eine wahre Belegung zugeordnet wird, einen Pfad im Zick-Zack-Mustergeben (falls xi = falsch anders herum). Die Klausel-Knoten cj sind durch diein Schritt 2 hinzugefügten Kanten nun ebenfalls Teil des Graphen, wenn die ge-wählte Belegung des xi mit der Richtung der Kanten nach cj übereinstimmt.

Umgekehrt sei nun ein Pfad in G von s nach t gegeben. Es bleibt zu zeigen,dass diese Interpretation ein Modell für φ ist. Dies ist dann der Fall, wenn je-der „Diamant“ genau einmal von oben nach unten besucht wird, entsprechend

Page 97: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.4. Ausgewählte Probleme in NP 91

xi cj

etc.

xi+1 cj+1

etc.

Abbildung 3.15: Für jede Klausel wird ein Klausel-Knoten cj hinzugefügt.

der Pfadrichtung (Ob „Zick-Zack“ oder „Zack-Zick“ liefert die Interpretation).Man macht sich an einem Beispiel schnell klar, dass es keinen davon abweichen-den Pfad geben kann. Angenommen, ein Pfad ginge vom inneren Literal-Knotena1 des „Diamanten“ von x1 zu einem Klausel-Knoten c und von dort zu einemKnoten b2 im letzten „Diamanten“ xn, anstatt korrekterweise von a1 zu a2 (imx1-Diamanten). In diesem Fall gäbe es keinen Weg mehr, die Nachbarknoten a2und a3 im x1-Diamanten zu besuchen. Das ist ein Widerspruch dazu, dass derPfad ein Hamilton-Pfad ist.

Eine erfüllende Belegung zusammen mit den „Umwegen“ bildet einen Hamilton-Pfad. Gibt es keine erfüllende Belegung, gilt für jedes „Abfahren“ der Variablen,dass eine Klausel (Knoten) unerreichbar bleibt (ohne einen Knoten doppelt zubesuchen).

3.4.7 VERTEX COVER

Angenommen, man habe ein durch einen Graphen dargestelltes Kommunikati-onsnetz. Dabei sind die Kommunikationsteilnehmer die Knoten und die Kantenstellen dar, wer wen der Lüge bezichtigt. Wenn also etwa eine Kante zwischenAlice und Bob existiert, so heißt dies, dass die beiden jeweils behaupten, der an-dere wäre nicht vertrauenswürdig. Man nimmt nun an, es gebe eine Verschwö-

Page 98: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

92 3. Komplexitätstheorie

. . .

. . . . . .

xi

. . . . . .

. . .

cj

Abbildung 3.16: Ein Knotenpaar wird „nach rechts“ verbunden, wenn xi in cjvorkommt.

. . .

. . . . . .

xi

. . . . . .

. . .

cj

Abbildung 3.17: Ein Knotenpaar wird „nach links“ verbunden, wenn xi in cj vor-kommt.

rung, an der ein gewisser Teil der Kommunikationsteilnehmer beteiligt ist, sodass sich dadurch alle Konflikte erklären lassen. Man sucht für diesen Graphenalso die Menge von Knoten, die den Graphen vollständig überdeckt. Diese Men-ge heißt VERTEX COVER:

Interessant ist dabei vor allem das MINIMAL VERTEX COVER, also ein VERTEX COVER,das eine möglichst geringe Anzahl an Knoten enthält. In der Praxis ist das etwafür Rechnernetze interessant, bei denen einzelne Rechner unterschiedliche Ergeb-nisse liefern, also manche der Rechner defekt sind. Hier ist es interessant heraus-zufinden, was die Erklärung für die Probleme ist, die am wenigsten Rechner alsdefekt markiert. Ein MINMAL VERTEX COVER muss jedoch nicht eindeutig sein. Füreinen Graphen, der genau aus zwei verbundenen Knoten besteht, gibt es schonzwei Möglichkeiten. Das zugehörige Entscheidungsproblem, das wir betrachtenwollen, lautet nun:

Page 99: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.4. Ausgewählte Probleme in NP 93

a b

c d e

f g VC = a,d,g

Abbildung 3.18: Beispiel für VERTEX COVER.

Problem 3.43 (VERTEX COVER). Sei G = (V ,E) ein Graph und k ∈ N. Gibt es eineMenge M ⊆ V mit |M| 6 k, sodass für alle (vi, vj) ∈ E vi ∈M oder vj ∈M?

Satz 3.44. VERTEX COVER ∈ NPC.

Beweis. Zuerst einmal sehen wir ein, dass VERTEX COVER ∈ NP.Um VERTEX COVER ∈ NPC zu zeigen, geben wir eine polynomielle Reduktionvon 3-SAT auf VERTEX COVER an. Sei φ dazu eine Instanz von 3-SAT mit Litera-len x1, . . . , xn. Wir bilden zunächst wieder einen Hilfsgraphen, der alle Literaleenthält, siehe Abbildung 3.19.

x1 x1 x2 x2 xn xn

etc.

Abbildung 3.19: Hilfsgraph für VERTEX COVER.

Man sieht einfach, dass jedes VERTEX COVER für jedes xi ∈ x1, . . . , xn nur entwederden Knoten für xi oder den Knoten für xi enthält. Nun betrachten wir wieder dieeinzelnen Klauseln von φ. Für jede Klausel erstellen wir einen neuen, aus einemDreieck bestehenden Teilgraphen. Die drei Ecken des Dreiecks verbinden wir mitden Knoten, die den Literalen der Klausel entsprechen. In Abbildung 3.20 ist dieswieder am Beispiel der Klausel (x1 ∨ x2 ∨ xn) vorgeführt.

x1 x1 x2 x2 xn xnetc

Abbildung 3.20: Hilfsgraph mit einem Dreieck für die Klausel (x1 ∨ x2 ∨ xn).

Page 100: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

94 3. Komplexitätstheorie

Sei n die Anzahl der Literale und m die Anzahl der Klauseln (also der Dreieckeim Graphen). Dann hat φ genau dann eine Lösung, wenn es ein VERTEX COVER

mit höchstens k = n+ 2m Knoten gibt: Für ein einfaches Dreieck benötigt manzwei Knoten, und da die Ecken der Dreiecke noch mit den Literalen verbundensind, findet man nur dann eine Überdeckung für ein Dreieck, wenn mindestenseines der verbundenen Literale auch Teil der Überdeckung ist. Das heißt, manmuss sich für jedes Literal xi entscheiden, ob xi oder xi Teil des VERTEX COVERs ist,und man findet nur dann ein entsprechendes VERTEX COVER, wenn man für jedeKlausel mindestens ein Literal ausgewählt hat, das darin vorkommt. Also gibt esgenau dann ein VERTEX COVER, wenn φ erfüllbar ist.

3.4.8 3-Dimensional Matching

Problem 3.45 (3DM). Gegeben drei Mengen B, G, U mit |B| = |G| = |U| = n undeine dreiwertige Relation T ⊆ (B×G×U). Gibt es ein Matching M ⊆ T aus n Tripeln(b1,g1,u1), . . . , (bn,gn,un), sodass für je zwei Tripel (bi,gi,ui) und (bj,gj,uj) gilt: bi 6=bj, gi 6= gj und ui 6= uj?

Satz 3.46. 3DM ist NP-vollständig.

Beweis. In der Übung.

3.5 Probabilistische KomplexitätsklassenDie nächste Gruppe von Klassen, die wir betrachten möchten, ist die der probabi-listischen Komplexitätsklassen. Probleme, die in diesen Klassen liegen, entsprechenam ehesten denen, die man zur Zeit als sinnvoll berechenbar ansieht.

3.5.1 Counting Classes

Bei probabilistischen Komplexitätsklassen betrachten wir Maschinen, die nur miteiner gewissen Wahrscheinlichkeit akzeptieren. Diese Wahrscheinlichkeit hängtdabei von der Anzahl der akzeptierenden Pfade ab. Wir möchten die Anzahl derakzeptierenden Pfade also gerne zählen können.

Definition 3.47 (Counting Turing machine). Eine zählende Turing-Maschine (auchCTM für engl. counting Turing machine) ist eine nichtdeterministische Turing-Ma-schine, deren Ausgabe die Anzahl akzeptierender Berechnungspfade ist.

Definition 3.48 (Klasse #P). Die Klasse #P (gesprochen: sharp P) besteht aus den Funk-tionen, die von polynomiell zeitbeschränkten Counting-Turing-Maschinen berechenbarsind.

Man sieht sofort ein, dass diese Klasse „mächtiger“ als NP ist. Eine nichtdeter-ministische Turing-Maschine, die eine Sprache aus NP entscheidet, kann nur ent-scheiden, ob es einen akzeptierenden Pfad gibt. Die Counting-Turing-Maschinehingegen kann sogar die Anzahl der akzeptierenden Pfade ausgeben. Somit kann

Page 101: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.5. Probabilistische Komplexitätsklassen 95

man mit ihrer Hilfe einfach die entsprechende nichtdeterministische Turing-Ma-schine simulieren. Es ist dabei wichtig zu erkennen, dass #P eine Klasse vonFunktionen und keine Klasse von Entscheidungsproblemen ist. NP ⊆ #P zuschreiben wäre also Unsinn. Sinnvoller wäre eine Aussage der Form PNP = P#P.Eine andere Aussage, die man über diese Klasse machen kann, ist, dass #P ⊆PSPACE, wobei hier PSPACE die Menge der Probleme ist, zu deren Berechnungnur polynomiell viel Platz benötigt wird. Interessant ist auch, dass es ein #P-vollständiges Problem gibt: #SAT, welches einer aussagenlogischen Formel dieAnzahl der erfüllenden Belegungen zuordnet.

3.5.2 Probabilistische Komplexitätsklassen

Die Grundidee, auf der die probabilistischen Klassen aufbauen, ist, anstelle nicht-deterministischer Verzweigungen probabilistische Verzweigungen zu verwen-den. Es wird also jede der Entscheidungen mit einer gewissen Wahrscheinlichkeitgetroffen. Eine solche Maschine akzeptiert dann mit einer Wahrscheinlichkeit,die der Anzahl der akzeptierenden Pfade geteilt durch die Anzahl die insgesamtmöglichen Pfade entspricht, sofern sich die Maschine in einer entsprechendenNormalform befindet: Die Pfade müssen alle gleich lang sein und alle Verzwei-gungen müssen genau vom Grad zwei sein.

3.5.3 Die Klasse RP

Definition 3.49 (Probabilistische Turing-Maschine). Eine probabilistische Turing-Maschine (kurz PTM) ist eine nichtdeterministische Turing-Maschine, die „ja“ ausgibt,wenn die Mehrheit der Pfade akzeptiert. Falls die Mehrheit der Pfade nicht akzeptiert, hatsie die Ausgabe „nein“. Bei exakt gleich vielen akzeptierenden und nicht akzeptierendenPfaden hat sie die Ausgabe „weiß nicht“.

Definition 3.50 (Klasse RP). Die Klasse RP (randomized polynomial time umfasstdie Entscheidungsprobleme, die von einer probabilistische Turing-Maschine in Polyno-mialzeit mit einseitigem Fehler entschieden werden können. Eine probabilistische Turing-Maschine M akzeptiert x, wenn die Mehrheit der Berechnungspfade x akzeptiert.

Legt man diese Definition zugrunde, wird gefordert, dass, wenn ein akzeptieren-der Pfad existiert, mindestens die Hälfte ihrer Pfade akzeptiert. Es gilt P ⊆ RP ⊆NP, wobei man hier jeweils vermutet, dass diese Inklusionen echt sind. Ähnlichwie bei der Klasse NP gibt es auch hier ein Asymmetrie: Die Entscheidung istlediglich dann mit Sicherheit richtig, wenn eine Eingabe akzeptiert wird.

3.5.4 Polynomprodukt-Inäquivalenz

Ein gutes Beispiel für ein Problem, für das ein RP-Algorithmus existiert, ist dasProblem der Polynomprodukt-Inäquivalenz.

Definition 3.51 (Polynomprodukt-Inäquivalenz). Seien P1, . . . ,Pn undQ1, . . . ,Qm Multimengen von multivariablen Polynomen. Ist

∏ni=1 Pi 6=

∏mi=1Qi?

Page 102: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

96 3. Komplexitätstheorie

Die Antwort auf dieses Problem ist „ja“, wenn das Produkt der Polynome un-gleich ist. Multipliziert man die Polynome einfach aus, steht man vor dem Pro-blem, dass die Anzahl der Monome zu schnell steigen kann. Auch der Ansatz,die Polynome in ihre Primfaktoren zu zerlegen, schlägt fehl: Hier gibt es ebensodas Problem, dass die Anzahl der Monome immer noch zu schnell steigen kann.Als Beispiel hierfür betrachte man etwa die Faktorisierung von (xn− 1) für n ∈ N.

3.5.4.1 Probabilistischer Ansatz

Will man dieses Problem probabilistisch angehen, besteht eine Möglichkeit dar-in, eine zufällige Zahl in die Polynomprodukte einzusetzen und zu überprüfen,ob das Ergebnis identisch ist. Findet man eine Eingabe, für das die Produkte un-terschiedlich auswerten, wird das Ergebnis „ja“ ausgegeben. Ist das Ergebnis fürbeide Produkte gleich, ist es trotzdem möglich, dass die Polynomprodukte un-terschiedlich sind, und der Algorithmus gibt „nein“ aus. Möglicherweise hat derAlgorithmus gerade einen Schnittpunkt der beiden Produktpolynome erraten. Esist wiederum die Asymmetrie der Klasse R zu betonen.

3.5.4.2 coRP

Für die Klasse coRP, also die Klasse der Komplemente aller Sprachen aus RP,ist diese Asymmetrie gerade invertiert. Betrachtet man etwa die Polynomäquiva-lenz (im Gegensatz zur Polynominäquivalenz, die wir betrachtet haben), so kannman mit dem selben Algorithmus nur mit Sicherheit „nein“ – die Polynome sindungleich – antworten. Es existieren also Zeugen für die Ungleichheit von Polyno-men, aber man erkennt keine einfachen Zeugen für deren Gleichheit. Daher wirdallgemein auch angenommen, dass RP 6= coRP, aber auch diese Frage ist nochoffen.

3.5.5 Die Klasse ZPP

Definition 3.52 (Klasse ZPP). ZPP = RP∩ coRP.

ZPP (zero-error probabilistic polynomial time) ist also die Klasse der Probleme, fürdie es sowohl Algorithmen gibt, die sicher „ja“ ausgeben, als auch solche, diesicher „nein“ ausgeben. Probleme aus ZPP sind also in erwartet polynomiellerZeit mit definitiv korrekter Antwort entscheidbar.

3.5.5.1 Kasinos

In Anlehnung daran, dass man auch in Kasinos ein Risiko eingeht (auch wenndieses erheblich höher ist), werden randomisierten Algorithmen im Sinne vonDefinition 3.50 als „Monte-Carlo-Algorithmen“ bezeichnet. Diese Klasse von Al-gorithmen, die Probleme aus ZPP lösen, also Algorithmen, die in erwartet poly-nomieller Zeit laufen und, wenn sie terminieren, auch mit Sicherheit das richtigeErgebnis liefern, heißen entsprechend „Las-Vegas-Algorithmen“.

Page 103: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

3.5. Probabilistische Komplexitätsklassen 97

3.5.6 PP und BPP

Die Klasse von Problemen, die wir nun betrachten, sind die eingangs erwähnten,die heutzutage als mit sinnvollem Zeitaufwand berechenbar gelten. Ob dies sobleibt, ist natürlich nicht sicher, da ja auch die Frage, ob P ?

= NP noch nicht geklärtist.

3.5.6.1 Normalform

Wie schon erwähnt müssen die probabilistischen Turing-Maschinen, die wir imFolgenden betrachten, noch normalisiert werden. Diese Normalisierung garan-tiert, dass alle Verzweigungen den Verzweigungsgrad zwei haben und alle Pfadegleich lang sind. Im Wesentlichen sorgt dies also dafür, dass solch eine Maschineals vollständiger binärer Baum dargestellt werden kann. So können wir auch vonPfadanzahlen anstatt von Wahrscheinlichkeiten sprechen.

3.5.6.2 PP

Definition 3.53 (Klasse PP). Die Klasse PP (probabilistisch polynomiell) enthält dieMenge aller Entscheidungsprobleme, die von einer probabilistischen Turing-Maschine inpolynomieller Zeit gelöst werden.

Auch wenn diese Klasse schon eher das ist ist, was wir haben möchten, so könnenwir sie noch nicht direkt verwenden. Man betrachte folgende Überlegung: Sei φeine aussagenlogische Formel, also eine SAT-Instanz. Nun führen wir ein weiteresLiteral xneu ein. Das Entscheidungsproblem φ∧ xneu liegt nun in PP. Damit istalso NP ⊆ PP. Wir suchen aber realistisch berechenbare Funktionen, NP ist unsjedoch schon „zu schwierig“ – wir haben also nichts gewonnen. Problematischist, dass wir lediglich verlangen, dass die Mehrheit der Pfade akzeptiert. DieseAussage ist zu schwach, denn sind immer lediglich minimal mehr akzeptierendePfade als nicht akzeptierende vorhanden, so wird deren Mehrheit mit steigenderPfadzahl immer unbedeutender.

3.5.6.3 BPP

Die Klasse, auf die wir eigentlich hinaus wollten, ist also nicht PP. Stattdessendefinieren wir die Klasse BPP. Dabei steht B für „bounded“, also beschränkt.Wir beschränken die Anzahl der akzeptierenden Pfade nach unten.

Definition 3.54 (Klasse BPP). BPP besteht aus den Entscheidungsproblemen, diedurch eine probabilistische Turing-Maschine entscheidbar sind, die mit einer Wahrschein-lichkeit 12 + δ mit δ > 0 die richtige Antwort gibt.

Hier wählen wir also eine Konstante δ, die dafür sorgt, dass die Anzahl der ak-zeptierenden Pfade mit der Gesamtzahl der Pfade hinreichend stark steigt. Er-kenntnisse über probabilistische Algorithmen der probabilistischen Turing-Ma-schinen aus dieser Klasse erlauben es nun, endlich sinnvolle Algorithmen zu fin-den.

Page 104: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

98 3. Komplexitätstheorie

3.5.6.4 RP, NP und BPP.

Wie verhält sich nun BPP zu den bisherigen Komplexitätsklassen, insbesonderezu NP? Klar ist, dass z. B. P komplett in BPP liegt, da die Klasse BPP die pro-babilistische Funktionalität nicht verwenden muss. Indizien sprechen dafür, dasssowohl BPP * NP als auch BPP + NP gilt. Weiterhin ist es wahrscheinlich, dassRP 6= coRP gilt.

Die Klassen verhalten sich also vermutlich wie in Abbildung 3.21 dargestellt.

ZPP

P = coP

BPP = coBPP

coRPRP

PP

Abbildung 3.21: Komplexitätsklassen in der Übersicht.

3.6 Weitere KlassenEs gibt viele weitere Komplexitätsklassen, unter anderem etwa

• EXPTIME. So wie P, nur dass man verlangt, dass die Turing-Maschine in2p(|x|) Schritten terminiert.

• PSPACE. Die Sprachen, die mit polynomiellem Platzbedarf entscheidbarsind.

• IP. Die Sprachen, für die ein interaktiver Beweis polynomieller Länge exis-tiert.

Dabei ist zum Beispiel schon gezeigt worden, dass IP = PSPACE. Es gibt unzäh-lige weitere Beispiele, für die meisten ist noch nicht viel gezeigt worden, mehrdazu findet man im Complexity Zoo.

Page 105: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4. Informationstheorie

4.1 Was ist Information?

Die Informationstheorie befasst sich mit Informationen. Claude Shannon führtezuerst den Informationsbegriff ein, zunächst als „mathematical theory of com-munication“, also als Theorie der Kommunikation.

Betrachten wir zunächst eine einfache Situation, um den Begriff zu illustrieren:Gegeben sei eine Zufallsquelle, der Sender, der Nachrichten verschickt. Die Zu-fallsquelle könnte z. B. eine Münze sein, die immer wieder geworfen wird. Wei-terhin gibt es einen Beobachter, den Empfänger, der die Nachrichten des Sendersbeobachtet.

Sender Empfänger

Abbildung 4.1: Sender und Empfänger

Der Shannonsche Informationsbegriff ist nun ein Maß der „Überraschung“, dieder Empfänger beim Erhalt der Nachrichten des Senders hat. Das heißt, dass vor-hersehbare Nachrichten wenig Information haben, während Nachrichten, die un-erwartet sind, also eine geringe Auftrittswahrscheinlichkeit haben, einen hohenInformationsgehalt haben.

4.1.1 Anwendungen

Im Rahmen der Übertragung von Information findet die Informationstheorie ihrepraktische Anwendung. Einige Verwendungsbereiche sollen exemplarisch vor-gestellt werden:

Page 106: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

100 4. Informationstheorie

• Bei der Quellcodierung werden die Signale beim Sender an der Quelle, meis-tens zum Erreichen einer höheren Informationsdichte (also Kompression),codiert. Beispiele für bekannte Kompressionsverfahren sind ZIP oder GZIP.

• Die Kanalcodierung dient dazu, Übertragungsfehler bei der Übertragungüber einen gestörten Kanal auf Empfänger-Seite beheben zu können. DieInformationsdichte wird also absichtlich verringert. Ein einfaches Beispielstellt der „Triple Repetition Code“ dar, bei dem jedes Bit dreimal übertragenwird: So kann ein „gekipptes“ Bit pro Dreier-Block korrigiert werden.

• In der Kryptographie sucht man Verschlüsselungsalgorithmen, bei denen derAngreifer ohne Schlüssel aus dem Chiffrat möglichst wenig Informationenüber den Klartext erhält.

4.1.2 Formale Definitionen

Nach diesen Vorüberlegungen möchten wir nun die Information I für ein Zei-chen, das mit Wahrscheinlichkeit p vorkommt, definieren. Sinnvolle Forderungenhierbei sind:

1. Information soll nicht negativ sein: Ip > 0.

2. Ein sicheres Ereignis (also wenn p = 1) soll keine Information liefern.

3. Für zwei unabhängige Ereignisse soll sich die Information summieren:I(p1·p2) = Ip1 + Ip2 .

4. Die Information soll robust sein, kleine Änderungen an der Wahrscheinlich-keit sollen also nur kleine Änderungen an der Information bewirken.

Damit ergibt sich folgende Definition für Information:

Definition 4.1 (Information). Ip = logb(1p)[= − logb(p)

]Im Folgenden sei die Basis b = 2.

Beispiel 28.Das Werfen einer Münze ergibt jeweils mit der Wahrscheinlichkeit p = 1

2 Kopfbzw. Zahl. Betrachtet man die Information, die ein Wort w über Σ = 0, 1 mit|w| = n enthält, das durch n-fachen Münzwurf erzeugt wurde, ergibt sich dieWahrscheinlichkeit für ein beliebiges, aber festes Wort mit p = 1

2n und damitI = − log2(

12n ) = n.

4.1.3 Der Entropiebegriff

Nachdem wir Information formal definiert haben, betrachten wir den Begriff derEntropie, also ein Maß für die Informationsdichte.

Page 107: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4.1. Was ist Information? 101

Information. Exkurs: Ursprung des Entropiebegriffs

Der Entropiebegriff hat seinen Ursprung in der Physik. Der informationstheo-retische Entropiebegriff ist eng mit dem physikalischen verwandt, die Defini-tion ist identisch. Man betrachte etwa ein sich ausbreitendes Gas:

Abbildung 4.2: Entropie nimmt zu

Hier sagt der zweite Hauptsatz der Thermodynamik aus, dass sich das linkeSystem nur zum rechten hin verändern kann und nicht umgekehrt, also dieEntropie nur zunehmen kann.

Übrigens . . . Maxwells Dämon

Den Zweiten Hauptsatz der Thermodynamik könnte man dadurch verletzen,dass man einen gasgefüllten Raum mit zwei Kammern konstruiert, zwischendenen eine reibungsfreie Schiebetür ist, die ein kleiner Dämon immer dannaufmacht, wenn ein schnelles Teilchen von links oder ein langsames Teilchenvon rechts kommt. Damit sortiert er die Teilchen nach ihrer Geschwindigkeit,also Temperatur.

Schiebetür

Abbildung 4.3: Maxwells Dämon

Man könnte nun aus der gewonnenen Temperaturdifferenz scheinbar Energiegewinnen (z.B. mit einem Stirling-Motor). Eine mögliche Folgerung daraus ist,dass Datenverarbeitung (hier bspw. das Sortieren der Teilchen) Energie benö-tigt.

Definition 4.2 (Entropie). Die Entropie einer diskreten Zufallsvariable X ist (analogzum physikalischem Begriff) definiert durch

H(X) =∑x∈X

p(x) log(1

p(x)) = EI(x).

Page 108: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

102 4. Informationstheorie

Dabei gelten die folgenden Konventionen:

0 · log(0) = 0, 0 · log(0

0) = 0, a · log(

a

0) =∞.

Dabei gilt immer H(X) > 0. Für eine andere Basis b 6= 2 ergibt sich Hb = logb(2) ·H(X). Die Entropie wird also bei einem Basiswechsel nur mit einem konstantenFaktor multipliziert. Vorsicht, Hα bezeichnet hingegen oft die Rényi-Entropie.

Beispiel 29.Sei X = 1 mit Wahrscheinlichkeit p und X = 0 mit Wahrscheinlichkeit (1 − p).Dann ist H(X) = −p log(p) − (1− p) log(1− p).

p

H(X)

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

Abbildung 4.4: Entropie von X in Abhängigkeit von p.

Definition 4.3 (Gemeinsame Entropie, Bedingte Entropie). Die gemeinsame Entro-pie der Zufallsvariablen X, Y mit der gemeinsamen Verteilung p(x,y) ist definiert durch

H(X, Y) =∑x∈X

∑y∈Y

p(x,y) log(1

p(x,y)).

Die bedingte Entropie der Zufallsvariable Y in Abhängigkeit von X mit gemeinsamerVerteilung p(x,y) ist

H(Y|X) =∑x∈X

p(x)H(Y|X = x)

= −∑x∈X

p(x)∑y∈Y

p(y|x) log(p(y|x))

= −∑

x∈X,y∈Yp(x,y)log(p(y|x)).

Korollar 4.4. Es gilt

H(X, Y) = H(X) +H(Y|X) = H(Y) +H(X|Y).

Beweis. Es gilt log(p(x,y)) = log((p(x)p(y|x))) = log(p(x)) + log(p(y|x)).

Daraus kann man folgern, dass H((X, Y)|Z) = H(X|Z) + H(Y|X,Z). Achtung: imAllgemeinen gilt H(X|Y) 6= H(Y|X).

Page 109: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4.2. Die Kolmogorow-Komplexität 103

4.1.4 Transinformation

Der Teil der ursprünglichen Information, der tatsächlich bei der Quelle ankommt,wird als Transinformation bezeichnet.

Definition 4.5 (Transinformation). Die Transinformation ist definiert durch

I(X; Y) = H(X) −H(X|Y)= H(Y) −H(Y|X).

Alle vorgestellten Entropien und die Transinformation kann man in einem Schau-bild in Beziehung setzen (vgl. Abbildung 4.5). Von der Entropie der Quelle H(X)geht ein Teil verloren, die sog. Äquivokation H(X|Y). Gleichzeitig kommt durchdas Rauschen auf dem Kanal auch neue Entropie in Form von FehlinformationH(Y|X) hinzu. Alle bei der Senke ankommenden Informationen bilden die Entro-pieH(Y), doch nur die Transinformation I(X; Y) ist der Teil, der tatsächlich von derQuelle gesendet wurde. Die Totalinformation H(X, Y) beschreibt alles, was überden Kanal gesendet wird.

H(X|Y)

H(Y)

H(Y|X)

H(X)I(X;Y) H(X, Y) = H(X) +H(Y|X)

Fehlinformation / Irrelevanz

Äquivokation

Totalinformation

Abbildung 4.5: Zusammenhang zwischen Transinformation und Entropie.

4.2 Die Kolmogorow-Komplexität

Nachdem wir Entropie und Information im informationstheoretischen Sinn defi-niert haben, widmet sich die Kolmogorow-Komplexität der Frage nach der kür-zesten Repräsentation von Information, insbesondere im Zusammenhang mit Al-gorithmen und Turing-Maschinen. Die Idee ist, Information als die kürzeste kon-krete Repräsentation eines Objekts aufzufassen. Dies wird auch als algorithmi-scher Informationsgehalt oder Beschreibungskomplexität bezeichnet.

Page 110: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

104 4. Informationstheorie

Codierung:

11 00 00 11 00 . . .︸ ︷︷ ︸〈M〉

Trennzeichen︷︸︸︷01 010110001︸ ︷︷ ︸

Eingabe w

Abbildung 4.6: Für x = 〈M〉w kann sich das Problem ergeben, dass nicht klar ist,wo 〈M〉 aufhört und w beginnt. Deshalb wird bei der Darstellung von 〈M〉 jedesBit doppelt ausgegeben und „01“ als Trennsymbol verwendet.

Ähnlich wie in Kapitel 2.1 vorgestellt, gehen wir in diesem Abschnitt von einerbinären Repräsentation 〈M〉 der Turing-Maschine M aus. 〈M〉 repräsentiert aller-dings nicht notwendigerweise eine Gödelnummer, sondern eine beliebige, aberfeste Codierung. Bei Konkatenation 〈M〉w von 〈M〉mit einem binären Wort w istnicht klar, wo die Darstellung von M aufhört und wo w beginnt. Deshalb wirdab sofort für 〈M〉 jedes Bit doppelt ausgegeben und 01 als Trennsymbol zu w ver-wendet, siehe Abbildung 4.6.

Definition 4.6 (Kolmogorow-Komplexität). Es sei x ein binäres Wort. Die minimaleBeschreibung d(x) von x ist die kürzeste Zeichenkette 〈M〉w, für die die Turing-Maschi-ne M mit Eingabe w unter Ausgabe von x auf dem Band hält. Falls mehrere solcherZeichenketten existieren, wird die lexikographisch erste davon gewählt. Die Kolmogo-row-Komplexität K(x) ist K(x) = |d(x)|.

Beispiel 30.Die naive Darstellung der Zeichenkette 0n würde n Zeichen benötigen. Es gehtjedoch auch kürzer:

for i = 0 to n−1p r i n t ( " 0 " )

Für hinreichend große n benötigt diese Pseudocode-Darstellung weniger als nZeichen.

Intuitiv sollte die Kolmogorow-Komplexität eines Worts nicht viel größer sein alsseine Darstellung. Dies ist auch der Fall.

Satz 4.7. Es gibt ein c, sodass für alle x ∈ 0, 1∗ gilt: K(x) 6 |x|+ c.Die Kolmogorow-Komplexität für jedes Wort x ist also höchstens konstant größer als |x|,c ist universal für alle Wörter.

Beweis. Es sei M die Turing-Maschine, die bei der Eingabe w das Wort w ausgibtund c die Länge von 〈M〉 in der hier verwendeten Codierung. M ist also die Tu-ring-Maschine, die die Identität berechnet.

Wenn das gleiche Wort doppelt ausgegeben wird, wächst die Kolmogorow-Kom-plexität nur um einen konstanten Wert im Vergleich zur einfachen Ausgabe.

Satz 4.8. Es gibt ein c, sodass für alle x ∈ 0, 1∗ gilt: K(xx) 6 K(x) + c.

Page 111: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4.3. Quellcodierungen 105

Beweis. Es sei M die Turing-Maschine, die als Eingabe 〈N〉w erwartet, wobei Neine Turing-Maschine ist und w die Eingabe für N. M führt N auf w aus, liest dasErgebnis x und gibt xx aus. Die Beschreibung von xx ist 〈M〉d(x), wobei |〈M〉| eineKonstante c ist und |d(x)| die Kolmogorow-Komplexität von x. Damit ergibt sichK(xx) 6 K(x) + c.

Es stellt sich die Frage, inwiefern die Kolmogorow-Komplexität von der Beschrei-bungssprache abhängt. Gibt es Beschreibungen, die signifikant besser geeignetsind als die auf Turing-Maschinen basierenden? Man kann zeigen, dass dies nichtder Fall ist.

Satz 4.9. Für jede Beschreibungssprache p existiert eine Konstante c mit

∀x : K(x) 6 Kp(x) + c.

Beweis. Idee: Es gibt eine Turing-Maschine, die die Beschreibungssprachen inein-ander übersetzt. Diese Maschine hat konstante Größe und kann Teil der Beschrei-bung sein.

Satz 4.10. Für alle n gibt es unkomprimierbare Wörter der Länge n.

Beweis. Über dem Alphabet 0, 1 gibt es genau 2n Wörter der Länge n. Für allekürzeren Beschreibungen w ′ von einem Wort w mit |w| = n gilt offensichtlich|w ′| 6 n−1. Da es aber nur

∑n−1i=0 2

i = 1+2+4 · · ·+2n−1 = 2n−1Wörter mit Länge6 n− 1 gibt, gibt es mindestens ein w mit |w| = n, für das es keine Beschreibungmit kürzerer Länge gibt.

Fast alle Wörter sind nicht komprimierbar. Dies gilt insbesondere für zufälligeZeichenketten.

4.3 Quellcodierungen

4.3.1 Verlustbehaftete Kompression

Bei Quellcodierungen, also Kompressionsverfahren, unterscheidet man grund-sätzlich zwischen verlustbehafteter und verlustfreier Kompression. Verlustbehaf-tete Kompressionsverfahren sind, wie der Name schon sagt, Kompressionsver-fahren, bei denen Information verloren geht. Typische Beispiele für solche Ver-fahren sind etwa JPEG 2000 oder MP3. Ein solches Verfahren lässt dabei übli-cherweise „unwichtige“ Informationen weg und übernimmt nur die wesentli-chen Merkmale. Solche Verfahren sind jedoch nicht Gegenstand dieser Vorlesungund wir konzentrieren uns daher auf verlustfreie Kompression.

Page 112: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

106 4. Informationstheorie

4.3.2 Codierungen

Aus den Definitionen von Information und Entropie und allgemeinen Überle-gungen können wir einige Anforderungen an eine Quellcodierung stellen. Zumeinen muss die Länge der Codierung eines Zeichens abhängig von der Häufigkeitdes Auftretens dieses Zeichens sein. Weiterhin muss der Code eindeutig deco-dierbar sein, wenn die Codierungen eines Zeichens nicht-feste Länge haben (vgl.Beispiel 31).

Beispiel 31.

Zeichen A B C DAuftrittswahrscheinlichkeit 1

16316

316

916

Codierung 0 01 10 11

Hier ist ADA = 0110 = BC, die Codierung ist also nicht eindeutig.

4.3.3 Präfix-Codes

Eindeutigkeit ist also eine Eigenschaft, die schon bei der Code-Konstruktion be-achtet werden muss. Eine Klasse von Codes, die eindeutig ist, ist die der soge-nannten Präfix-Codes1.

Definition 4.11 (Präfix-Code). Sei c = c1 . . . cn eine Codierung. Wenn für alle c ′ =c1 . . . cl (1 6 l < k) gilt, dass c ′ keine Codierung ist, heißt c präfixfrei oder Präfix-Code.

Ein Codewort darf also kein Präfix besitzen, das selbst wieder ein Codewort ist.Daraus folgt, dass man solche Codierungen eindeutig von links nach rechts le-send decodieren kann. Ein Präfix-Code wird durch einen Baum repräsentiert:Wenn man ein Wort binär codieren will, so verwendet man einen binären Baum.Dessen Blätter sind die zu codierenden Zeichen, die Äste werden, wenn sie nachlinks verzweigen mit 0, nach rechts mit 1 beschriftet. Die Zeichen auf dem Äs-ten vom Wurzelknoten zum Blatt stellen die Codierung des Zeichens dar. EinPräfix-Code für die Zeichen σ1, . . . ,σ7 lässt sich beispielsweise durch den Baumin Abbildung 4.7 darstellen.

1Sinnvoller mag der Begriff präfix-freier Code sein, der allerdings in der Literautur nicht ver-wendet wird.

Page 113: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4.3. Quellcodierungen 107

σ1

0

σ2

1

0

σ3

1

0

σ4

0

σ5

0

σ6

0

σ7

1

1

1

1

Beispiel: σ5 = 110

Abbildung 4.7: Ein Präfix-Code.

Dieses Verfahren berücksichtigt aber noch nicht die Auftrittswahrscheinlichkeitder einzelnen Zeichen, weshalb eine solche Codierung in der Regel nicht optimalist.

Information.

Man unterscheidet zwischen gedächtnislosen Quellen, bei denen die Auftritts-wahrscheinlichkeit eines Zeichens nicht von den vorhergehenden abhängt,und Quellen mit Gedächtnis, bei denen dies der Fall ist.

Betrachten wir nun wieder die folgenden vier Zeichen und ihre Auftrittswahr-scheinlichkeit:

Zeichen A B C DAuftrittswahrscheinlichkeit 1

16316

316

916

Jedes Zeichen ist hier mit 2 Bit codiert, der Erwartungswert für die codierte Längeeines Zeichens ist also demnach 2. Man findet aber bessere Codierungen, etwa:

D

0

C

0

B

0

A

1

1

1

Abbildung 4.8: Eine optimale Codierung.

Page 114: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

108 4. Informationstheorie

Unter Berücksichtigung der neuen Codierungslängen der Zeichen berechnet sichder Erwartungswert für die Codierungslänge eines einzelnen Zeichens nun als116 · 3+

316 · 3+

316 · 2+

916 · 1 =

2716 < 2. Im Vergleich zu Beispiel 31 ist diese Codierung

präfixfrei.

Wir stellen im Folgenden zwei Codierungen vor, von denen eine optimal bezüg-lich des Erwartungswerts der Zeichenlänge ist.

4.3.3.1 Die Shannon-Fano-Codierung

Die Shannon-Fano-Codierung wird nach folgendem Muster erstellt:

1. Sortiere die vorkommenden Symbole absteigend nach ihrer Häufigkeit.

2. Teile die Symbole in zwei Teilgruppen auf, sodass die aufsummierten Wahr-scheinlichkeiten beider Gruppen möglichst gleich sind.

3. Hänge nun die beiden entstehenden Gruppen als Blätter an eine neue Wur-zel.

4. Verfahre nun rekursiv: Ersetze die Gruppen solange jeweils durch denBaum, der beim Anwenden des Verfahrens auf sie jeweils entsteht, bis alleBlätter einzelne Zeichen sind.

Der resultierende Baum ist die Codierung, die allerdings nicht immer optimal ist.

Beispiel 32.Wir wollen nun anhand der folgenden Verteilung eine Codierung mittels desShannon-Fano-Verfahrens bestimmen.

Symbol A B C D EAbsolute Häufigkeit 15 7 6 6 5

Es ergibt sich folgender Baum:

A B C D E

A B

A

0

B

1

0

C D E

C

0

D E

D

0

E

1

1

1

Schritt 1

Schritt 2

Schritt 3

Abbildung 4.9: Shannon-Fano-Codierung.

Für die erwartete Länge eines Zeichens ergibt sich 1539 · 2+

739 · 2+

639 · 2+

639 · 3+

539 ·

3 = 8939 .

Page 115: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4.3. Quellcodierungen 109

4.3.3.2 Der Huffman-Code

Der Erwartungswert für die codierte Länge eines Zeichens in Beispiel 32 ist je-doch nicht optimal. Diese Forderung wird von Huffman-Codes, die mit folgen-dem Algorithmus erzeugt werden können, erfüllt:

1. Erstelle aus jedem der Symbole einen Baum, der genau dieses Symbol alseinzigen Knoten enthält. Diese Bäume bilden einen Wald.

2. Wiederhole die folgenden Schritte solange, bis der Wald nur noch ein einzi-ger Baum ist:

• Wähle die beiden Bäume, deren summierte Auftrittswahrscheinlich-keit aller Blätter am kleinsten ist.

• Erstelle einen neuen Baum mit neuer Wurzel und den Wurzeln derbeiden Bäume aus dem vorherigen Schritt als Kinder.

Beispiel 33.Wir betrachten nun die Huffman-Codierung für die Eingabe aus Beispiel 32:

A B C D E15 7 6 6 5

(a) Ausgangslage

A B C D E15 7 6

11

(b) Schritt 1

A B C D E15

1113

(c) Schritt 2

A B C D E15

24

(d) Schritt 3

A B C D E

39

(e) Ergebnis

Abbildung 4.10: Konstruktion eines Huffman-Baums.

Page 116: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

110 4. Informationstheorie

Die erwartete Länge eines Zeichens ist hier 1539 · 1+

739 · 2+

639 · 2+

639 · 3+

539 · 3 =

7439 <

8939 .

Satz 4.12. Huffman-Codes sind optimal, d. h. der Erwartungswert für die Zeichenlängeder Codierung ist minimal.

Beweis. Sei Σ = σ0 . . . ,σn−1 das Alphabet, für das der Code erstellt werden soll.Die Auftrittswahrscheinlichkeit eines Zeichens σ bezeichnen wir mit p(σ), dieLänge des Pfades zu σ, also die Codierungslänge, mit l(σ). Es gilt, folgenden Termzu minimieren:

E =∑σ∈Σ

p(σ) · l(σ)

Um zu zeigen, dass dieser Term bei einem Huffman-Baum minimal ist, zeigenwir drei Lemmata:

Lemma 4.13. Jeder innere Knoten in einem optimalen Baum hat zwei Kind-Knoten.

Beweis. Angenommen, ein innerer Knoten hat nur einen Kind-Knoten. Dannkönnte man den inneren Knoten einfach durch den Kind-Knoten ersetzen undverringerte damit insgesamt den Erwartungswert E. Das ist jedoch ein Wider-spruch zur Annahme, dass der Baum optimal ist.

Lemma 4.14. Wenn σj und σk die beiden Symbole mit der kleinsten Auftrittswahr-scheinlichkeit sind, so haben sie in einem optimalen Baum denselben Vater-Knoten.

Beweis. Es sei o. B. d. A. l(σj) > l(σk) und σj habe im Baum den Nachbarbaum Tn,also

σj Tn

Die Summe der Wahrscheinlichkeiten von Tn ist definitionsgemäß größer als odergleich groß wie die von σk (da σj und σk die geringste Auftrittswahrscheinlichkeithaben). Vertauscht man nun einfach Tn mit σ2, so ist der Erwartungswert für dieZeichenlänge der Codierung beim so resultierenden Baum kleiner als oder gleichgroß wie vorher. Der alte Baum kann also nicht der optimale gewesen sein.

Lemma 4.15. Der Huffman-Baum ist optimal.

Beweis. Es seien σj und σk die beiden Symbole mit der geringsten Auftrittswahr-scheinlichkeit und o. B. d. A. l(σj) > l(σk). Nehmen wir also an der optimale Baumwäre nicht aus dem oben beschrieben Verfahren hervorgekommen. Untersuchenwir dann das kleinste Gegenbeispiel.

Page 117: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4.4. Kanalcodierungen 111

Optimal

σj σk

6= Huffman

σj σk

Nun ersetzen wir den Teilbaum σj σk in beiden Bäumen durch ein σ ′ mit p(σ ′) =p(σj) + p(σk). Der Teilbaum σj σk existiert, da σj und σk nicht auf unterschiedli-cher Höhe hängen dürfen, wenn sie aber auf gleicher Höhe hängen und nicht be-nachbart sind, so kann man ohne Beeinflussung von E den Baum so umhängen,dass sie benachbart sind. Wir haben nun unter der Annahme, dass das oben daskleinste Gegenbeispiel war, ein kleineres konstruiert (da Huffman und optimalerBaum sich bei der Ersetzung nicht ändern). Das widerspricht der Annahme, dasses überhaupt ein Gegenbeispiel gibt.

4.4 KanalcodierungenNun wollen wir uns mit Kanalcodierungen befassen. Das sind im Allgemeinenfehlererkennende oder -korrigierende Codes, die verwendet werden, um bei derÜbertragung auftretende Fehler wie beispielsweise zufällige gekippte Bits zu er-kennen und zu korrigieren.

Man unterscheidet zwischen zwei Klassen von Codes:

• Block-Codes: Codewörter haben feste Länge und aufeinanderfolgende Blö-cke werden unabhängig voneinander codiert.

• Faltungs-Codes: Es wird ein Teil der bereits codierten Zeichen im Puffer ge-halten, und entsprechend diesen ein neu eingelesenes Zeichen codiert. Die-se Art von Codierung ist besonders für kontinuierliche Quellen wie Radiogeeignet.

Wir befassen uns im Folgenden nur mit Block-Codes.

4.4.1 Block-Codes

Block-Codes haben folgende Eigenschaften:

• Der Code ist immer über einem endlichen Alphabet Q, wobei vor allem Q =

0, 1 interessant ist.

Page 118: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

112 4. Informationstheorie

• Ein Block-Code ist eine Teilmenge C ⊆ Qn für ein n ∈ N, d. h. alle Blöckehaben dieselbe Länge.

Für |C| = 1 heißt C trivial, da es nur ein Codewort gibt. Für |Q| = 2 heißt C binär,für |Q| = 3 terniär, etc. Sei p eine Primzahl und q = pr (r ∈ N). Fq ist ein endlicherKörper mit q Elementen. Wir betrachten im Folgenden nur F = Fq = F2 = 0, 1.Sei also F = F2. Man sieht, dass Fn2 gerade die Bitvektoren, also binären Wörter,der Länge n enthält.

Es stellt sich die Frage, wie ein Codewort wieder decodiert werden kann, wennes bei der Übertragung einen Fehler gegeben hat. Ein Ansatz ist Maximum-Likelihood-Decoding.

Definition 4.16 (Maximum-Likelihood-Decoding). Für eine Nachricht x ∈ Fn2 wähltdas Maximum-Likelihood-Decoding das Codewort y ∈ C aus, sodassPr[y gesendet|x empfangen] maximiert wird.

In unserem Fall bedeutet dies, dass das Codewort gewählt wird, für das der Ab-stand zur übertragenen Nachricht minimal ist. Dazu führen wir mit der Hamming-Distanz eine Metrik ein, welche den Unterschied zwischen zwei Codewörternfestlegt und eine Quantifizierung von Fehlern erlaubt.

Definition 4.17 (Hamming-Distanz). Für x,y ∈ 0, 1n ist

d(x,y) :=n∑i=1

(1− δxi,yi) = |i | i = 1, . . . ,n, xi 6= yi|

die Hamming-Distanz zwischen x und y.

Damit is die Hamming-Distanz zwischen x und y die Anzahl der Zeichen in x,die sich von denen in y unterscheiden.

Definition 4.18 (Hamming-Kugel). Es sei Bρ(x) die Menge aller Wörter y mitd(x,y) 6 ρ. Wir nennen Bρ die Hamming-Kugel um x mit Radius ρ.

Jetzt können wir die Minimaldistanz eines Codes definieren, welche den mini-malen Abstand zwischen zwei Codewörtern beschreibt.

Definition 4.19 (Minimaldistanz). Die Minimaldistanz eines nichttrivialen Block-Codes C ist

m(C) = minc1,c2∈C,c1 6=c2d(c1, c2).

Dabei ist hier d(c1, c2) die Hamming-Distanz. Eine weitere wichtige Größe imZusammenhang mit Codes ist die Rate. Sie beschreibt das Verhältnis von Infor-mationssymbolen zur Länge der Codewörter.

Definition 4.20 (Informations-Rate). Für einen Code C ⊆ Qn heißt

R(C) =log(|C|)log(|Q|n)

=log(|C|)n · log(|Q|)

die (Informations-) Rate von C.

Page 119: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4.4. Kanalcodierungen 113

Für |Q| = 2 ergibt sich die Rate also zu log(|C|)n . Die Rate eines Codes ist immer

kleiner als 1, da durch eine Kanalcodierung immer Redundanz zu den Datenhinzugefügt wird.

Definition 4.21 (Perfekter Code). Ein Code C mit ungerader Minimaldistanz m(C)

heißt perfekt, falls es für jedes x ∈ Qn genau ein c ∈ C gibt, sodass d(x, c) 6 m(C)−12 .

Für perfekte Codes gilt also, dass man mit Maximum-Likelihood-Decoding jedesempfangene Wort eindeutig einem Codewort zuordnen kann. Allerdings mussdieses Codewort nicht unbedingt das gesendete Codewort sein.

Lemma 4.22. Ein Block-Code C mit Minimaldistanz m(C) = d kann entweder bis zud− 1 Fehler erkennen oder bis zu

⌊d−12

⌋Fehler korrigieren.

Beweisskizze. Der Abstand zwischen zwei Codewörtern beträgt d Bits, daher kannjedes Codewort, das an d− 1 Stellen gekippt ist, als fehlerhafte Nachricht identi-fiziert werden. Allerdings ist bei d− 1 gekippten Stellen nicht mehr klar, welchesCodewort ursprünglich gesendet wurde, daher kann keine Korrektur erfolgen.Falls nur bd−12 c Bits gekippt sind, gibt es eine eindeutige Zuordnung zu einemCodewort (vgl. Abbildung Abbildung 4.11).

x1

bd−12c

d− 1

x1

bd−12c

x3

bd−12c

Abbildung 4.11: Beweisskizze.

Wir werden im Folgenden einige Codierungen betrachten. Dabei gibt es einigeEigenschaften, die zu beachten sind:

1. Der Code sollte eine hohe Rate haben, also möglichst wenig Redundanz.

Page 120: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

114 4. Informationstheorie

2. Die Minimaldistanz sollte groß sein, um eine möglichst hohe Korrekturleis-tung zu erzielen.

3. Das Decodieren sollte effizient sein.

In Abbildung 4.12 erkennt man, dass (1) und (2) konkurrierende Ziele sind.

Rate

Korrekturleistung

1

1

Schranke für n→∞alle Vektoren sind Codewörter

n-fache Wiederholung

Abbildung 4.12: Zusammenhang von Rate und Korrekturleistung.

Definition 4.23 (Linearer Code). Ein linearer [n,k]-Block-Code C ist ein Untervektor-raum von Fnq der Dimension k.

Definition 4.24 (Hamming-Metrik). Für x ∈ Fnq definieren wir die Hamming-Metrik(Hamming-Gewicht, L0-Norm)

wgt(x) = d(x, 0) =n∑i=1

(1− δxi,0) = |i | i = 1, . . . ,n, xi 6= 0|.

Korollar 4.25. Für Block-Codes gilt d(x,y) = wgt(x− y).

Beweis.

d(x,y) = |i | i = 1, . . . ,n, xi 6= yi|= |i | i = 1, . . . ,n, xi − yi 6= 0|= wgt(x− y).

Da aber für lineare Block-Codes mit x,y ∈ C auch x− y ∈ C, entspricht die Mini-maldistanz also dem Vektor c ∈ C mit dem kleinsten Hamming-Gewicht. Es gibtzwei Möglichkeiten, einen solchen Code zu beschreiben:

• Ist C eine linearer [n,k]-Code, so können wir C als Kern einerF(n−k)×nq -Matrix H angeben:

C = Ker(H) = x ∈ Fnq | H · x = 0

Dabei heißt H Prüfmatrix oder Parity-Check-Matrix.

Page 121: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4.4. Kanalcodierungen 115

• Beschreibung über Codierungsabbildung: Für einen [n,k]-Code C könnenwir eine Fn×kq -Matrix G angeben sodass

C = Bild(G) = y ∈ Fnq | ∃x ∈ Fk : y = G · x.

G bildet Informationswörter auf Codewörter ab.

Dabei ist die Parity-Check-Matrix die wichtigere Beschreibungsart, vor allem hin-sichtlich Fehlererkennung und Fehlerkorrektur.Weiterhin gilt für gegebene G, H, dass H ·G = 0, jede Spalte von G ist also eingültiges Codewort.

Definition 4.26 ((Fehler)-Syndrom). Für x ∈ Fn heißt s = H · x das (Fehler)-Syndromvon x.

Dabei hängt s nur von einem additiven Fehler ab, nicht aber vom Codewortselbst: Ist x = c+ e, so ist

H · x = H · (c+ e) = H · c+H · e = H · e = s.

4.4.1.1 Parity-Codes

Die Idee hinter Parity-Codes ist einfach: Man fügt einem Informationswort einBit hinzu, das angibt, ob die Quersumme des Informationswortes gerade oderungerade ist (engl. parity), um so einfache Bitfehler zu erkennen.

Beispiel 34 (Even Parity).Seien

G =

1

1

1

1

1 1 1 1

,H =(1 1 1 1 1

), x =

1

0

1

0

.

Dann ist c = G · x =(1 0 1 0 0

). Das letzte Bit ist das so genannte Parity-Bit,

welches hier aussagt, dass die Quersumme der vorigen Bits gerade ist.

Parity-Codes sind [n,n− 1]-Codes, codieren also n− 1 Informationsbits in Wörterder Länge n. Die Rate eines Parity-Codes ergibt sich als:

R(C) =n− 1

n= 1−

1

n.

Das heißt also, R(C)→ 1 für n→∞.

Für die Minimaldistanz ergibt sich m(C) = 2. Parity-Codes können also eineneinzelnen Bitfehler erkennen, aber keine Fehler korrigieren. Ist C ein [n,k]-Codemit ungerader Minimaldistanz d und Prüfmatrix H, so können wir den parity-erweiterten Code C definieren durch die Prüfmatrix

H =

1 1 . . . 1

0

H...0

C hat Minimaldistanz d+ 1, da alle Gewichte in C gerade sind.

Page 122: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

116 4. Informationstheorie

4.4.1.2 Hamming-Codes

Hamming-Codes sind eine Familie von dual-projektiven Codes.

Definition 4.27 (Dualer Code). Sei C ein [n,k]-Code. Dann nennen wir

C⊥ = y ∈ Fnq | ∀x ∈ C : x · yT = 0

den Dual-Code von C.

Information.

C⊥ ist nicht mit dem Komplementärraum bei Vektorräumen über R zu ver-wechseln. Bei endlichen Körpern kann C∩C⊥ mehr als die Null enthalten undsogar C = C⊥ sein.

Definition 4.28 (Projektiver Code). C heißt projektiv, wenn alle Spalten seiner Gene-ratormatrix G paarweise linear unabhängig sind.

Im Folgenden sei n = 2k − 1 für k ∈ N.

Definition 4.29 (Hamming-Code). Hamming-Codes sind [n,n− k]-Codes, für die jezwei Spalten der Prüfmatrix H linear unabhängig sind.

Beispiel 35.Der [7, 4]-Hamming-Code hat folgende Matrizen:

H =

0 0 0 1 1 1 1

0 1 1 0 0 1 1

1 0 1 0 1 0 1

, G =

1 1 0 1

1 0 1 1

1 0 0 0

0 1 1 1

0 1 0 0

0 0 1 0

0 0 0 1

.

Als Rate für Hamming-Codes ergibt sich R(C) = n−kn = 1− k

n und für die Mini-maldistanz m(C) = 3.

Satz 4.30. Hamming-Codes sind perfekt.

Beweis. Sei C ein [n,n − k]-Hamming-Code. Betrachte Hamming-Kugeln B1(c),also diejenigen mit Radius 1 um die einzelnen Codewörter c ∈ C. Dann ist

|B1(c)| = 1+ 2k − 1 = 2k.

C hat Dimension n− k, also gibt es |C| = 2n−k Codewörter. Für c1 6= c2 sind B(c1)und B(c2) disjunkt. Die Hamming-Kugeln-Packung hat 2k · |C| Elemente

2k · |C| = 2k · 2n−k = 2n = |Fn|.

Page 123: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4.4. Kanalcodierungen 117

Bei Hamming-Codes ist also ein effizientes Decodieren von 1-Bit-fehlerbehaftetenWörtern möglich. Gegeben ein Wort c. Hat die Prüfmatrix H die systematischeForm wie in Beispiel 35, berechnet man zuerst s = H · c, wobei s das Syndrom ist.Man identifiziert sT mit einem Spaltenvektor aus H, dessen Position dem Indexdes gekippten Bits entspricht. Gibt es mehrere solche Spalten-Vektoren, ist eineeindeutige Korrektur nicht möglich. Die redundanten Bits werden entfernt (alsodie Positionen des Codeworts, deren Zeilen der Generatormatrix mehr als eine 1enthalten) und man erhält das ursprüngliche Wort w.

Beispiel 36.Sei c = (1 0 0 1 1 1 1)T das empfangene Wort. Dann bestimmen wir das Syndroms durch

s = H · c =

0 0 0 1 1 1 1

0 1 1 0 0 1 1

1 0 1 0 1 0 1

·

1

0

0

1

1

1

1

=

001

.

Wir identifizieren das Syndrom (0 0 1)T eindeutig mit der ersten Spalte von H.Der Fehler befindet sich also an der ersten Stelle von cw. In der dritten, fünf-ten, sechsten und siebten Zeile von G steht genau eine 1, weshalb sich w =

(cw3 cw5 cw6 cw7)T = (0 1 1 1)T ergibt.

4.4.1.3 Weitere Verfahren

Es gibt noch viele weitere Block-Codierungsverfahren, die effizientes Decodierenermöglichen:

• Repetition-Codes,

• Fourier- und Polynom-Codes: Reed-Solomon-Codes, BCH,

• Algebraische Geometrie-Codes: Goppa-Codes,

• d-reguläre Expander-Graphen: LDPC-Codes.

4.4.2 Verbindung zur KomplexitätstheorieProblem 4.31 (COSET-WEIGHTS). Gegeben: Prüfmatrix H und ein Syndrom s und eineZahl k. Frage: Gibt es ein e mit wgt(e) 6 k, sodass H · e = s?

Satz 4.32 (Berlekamp, McEliece, van Tilborg). COSET-WEIGHTS ist NP-vollständig.

Beweis. Zunächst ist klar, dass COSET-WEIGHTS ∈ NP: Wir raten einen Vektor e ∈Fn2 , prüfen obH · e = s und ob wgt(e) 6 k. Dies geht inO(n2) (wird dominiert vonMatrix-Multiplikation). Wir zeigen durch Reduktion von 3DM (Siehe Kapitel 3.4.8)auf COSET-WEIGHTS, dass COSET-WEIGHTS NP-vollständig ist.

Sei (B,G,U, T) mit |B| = |G| = |U| = n eine Instanz von 3DM. Wir definieren H ∈F3n×|T |2 folgendermaßen:

Page 124: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

118 4. Informationstheorie

• Wir identifizieren die Zeilenindizes von H mit Elementen der Mengen B, Gund U.

• Für jedes Tripel (b,g,u) ∈ T führen wir einen Spalte c in H ein, die jeweilsgenau an den Stellen b, g und u eine 1, sonst überall 0 stehen hat. Wir kön-nen deshalb Spaltenindizes von H mit Tripeln (b,g,u) ∈ T identifizieren.

Wir setzen k = n und s = (1, 1, . . . , 1)T ∈ F3n2 . Für eine Lösung e ∈ F|T |2 muss

wgt(e) > n gelten, da wgt(s) = 3n und jede Spalte ein Hamming-Gewicht von 3hat. Wir suchen also nach einem e mit Gewicht genau n. Wir erhalten damit: Die3DM-Instanz (B,G,U, T) ist genau dann erfüllbar, wenn die COSET-WEIGHTS-Instanz(H, s,k) erfüllbar ist. Da Spalten von H und Elemente von T sich gegenseitig ent-sprechen, können wir aus einem Vektor e ∈ F|T |

2 mit Gewicht n dadurch ein Mat-ching M konstruieren, indem wir die Spalten genau die Tripel (b,g,u) ∈ T in dasMatching M aufnehmen, wenn in e an der Stelle (b,g,u) eine 1 steht. Umgekehrtkönnen wir aus einem Matching M einen erfüllenden Vektor e konstruieren in-dem wir für jedes (b,g,u) ∈M in den Vektor e an Position (b,g,u) eine 1 schreibenund überall sonst Nullen. Damit ist die Reduktion abgeschlossen.

Beispiel 37.Sei |B| = |G| = |U| = 2 und T = (1, 1, 2), (2, 1, 2), (2, 2, 1). Es ist also n = 2. DieMatrix H und das Syndrom s sehen folgendermaßen aus:

H =

b1b2g1g2u1u2

1 0 0

0 1 1

1 1 0

0 0 1

0 0 1

1 1 0

, s =

1

1

1

1

1

1

Eine Lösung dieser Instanz ist e = (1 0 1)T mit wgt(e) = 2.

4.5 Kryptographie und InformationstheorieInformationstheorie kann auch auf die Kryptographie angewendet werden: Manversucht kryptographische Verfahren zu finden, bei denen das Chiffrat keinebzw. möglichst wenig Information über den Klartext enthält.

Definition 4.33 (Grundlagen der Kryptographie).

• M bezeichnet den Klartext (message), der verschlüsselt werden soll.

• C bezeichnet das Chiffrat (ciphertext), also den verschlüsselten Klartext.

• K bezeichnet den Schlüssel (key).

Mi,Ci,Ki (i > 0) bezeichnet das i-te Zeichen von M,C,K.

Page 125: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4.5. Kryptographie und Informationstheorie 119

4.5.1 Einfache Verschlüsselungsverfahren: SubstitutionschiffrenIm Folgenden soll eine einfache Klasse von Verschlüsselungsverfahren vorge-stellt werden, bei der Buchstaben nach bestimmten Regeln durch andere Buch-staben ersetzt werden. Wir vereinbaren, dass jedem Buchstaben des AlphabetsZahlenwerte von 0 bis 25 zugeordnet werden, also A=0, . . . ,Z=25. Weiterhin de-finieren wir die Addition modulo 26: x+ y = (x+ y) mod 26. Damit können wirnun mit Buchstaben „rechnen“: X+ Y = V ((23+ 24) mod 26 = 21).

4.5.1.1 Die Caesar-Verschlüsselung

Bei der Caesar-Verschlüsselung wird jeder Buchstabe des Klartexts um einen kon-stanten Wert „verschoben“, man spricht daher auch von einer Verschiebechiffre.

Klartext M . . . A B C E F G H . . .Chiffrat C . . . W X Y Z A B C . . .

Abbildung 4.13: Caesar-Verschlüsselung mit K = 22. Der i-te Buchstabe geht aufden (i+ 22 mod 26)-ten Buchstaben über.

Diese Art von Verschlüsselung ist unsicher, denn aus dem Chiffrat kann sehrviel Information über den Klartext gewonnen werden, da sich die Auftrittswahr-scheinlichkeit der Zeichen nicht ändert. Durch Kenntnis der Verteilung der Buch-staben in deutschen Wörtern kann der Schlüssel bei hinreichend großem Chiffratschnell ermittelt werden. Natürlich ist dieses Verfahren auch deshalb unsicher,weil es nur 26 mögliche Schlüssel gibt. Diese grundlegende Problematik ist beiallen monoalphabetischen Substitutionschiffren zu beobachten.

4.5.1.2 Die Vigenère-Verschlüsselung

Die Vigenère-Verschlüsselung, welche lange Zeit als „le chiffre indéchiffrable“(dt. „die unentzifferbare Verschlüsselung“) galt, funktioniert ebenso wie die Cae-sar-Verschlüsselung nach dem Substituionsprinzip: Für einen Klartext M ergibtsich das j-te Zeichen Cj des Chiffrats aus dem j-ten Zeichen des Klartextes Mj

durch Cj = Mj + Kj mod |K| mod 26. Hier ist der Schlüssel ein Wort, und jederBuchstabe des Schlüssels bestimmt die Größe der Verschiebung.

Beispiel 38.

Klartext M DIESERTEXTISTHOCHKRITISCH

Schlüssel K ONYXONYXONYXONYXONYXONYXO

Chiffrat C RVCPSERBLGGPHUMZVXPFHVQZV

Abbildung 4.14: Verschlüsselung von „DIESERTEXTISTHOCHKRITISCH“ mitSchlüssel „ONYX“.

Doch auch dieses Verfahren ist unsicher: für einen Schlüssel der Länge n wirdjeder n-te Buchstabe des Klartextes mit demselben Schlüssel verschlüsselt. Da-mit ist auch dieses Verfahren, wenn auch in deutlich geringerem Maße, für eineHäufigkeitsanalyse anfällig.

Page 126: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

120 4. Informationstheorie

4.5.2 Perfekte Sicherheit

Was macht also ein informationstheoretisch sicheres (information-theoretically se-cure) Verschlüsselungsverfahren aus? Um dies zu klären, führen wir den Begriffder perfekten Sicherheit ein. Dabei ist anzumerken, dass selbst ein Verfahren, dasdiese Bedingung erfüllt, nicht automatisch sicher ist. Gegen Anwendungsfehleretwa schützt auch perfekte Sicherheit nicht.

Definition 4.34 (Perfekte Sicherheit). Sei M ein Klartext, sowie C das dazugehörigeChiffrat. Sei nun p(M) die Wahrscheinlichkeit, den Klartext zu erraten, sowie p(M|C)

die Wahrscheinlichkeit, den Klartext zu erraten, wenn C bekannt ist. Ein Verschlüss-lungsverfahren heißt perfekt sicher, wenn

p(M|C) = p(M)

gilt.

Die Kenntnis des Chiffrats ändert also nichts an der Wahrscheinlichkeit, den Klar-text erraten zu können.

Korollar 4.35. Bei einem perfekt sicheren Verschlüsselungsverfahren gilt p(C|M) =

p(C).

Beweis. Aus dem Satz von Bayes folgt:

p(C|M) =p(M|C) · p(C)

p(M)= p(C)

da p(M|C) = p(M) nach Definition 4.34.

Man kann bei einem solchen Verfahren also auch mit bekanntem Klartext keineAussage über das Chiffrat machen. Um dies bei endlich langen Klartexten zu er-reichen, muss die Anzahl der verwendeten Schlüssel größer als oder gleich großwie die Anzahl der Klartexte sein.

Satz 4.36 (Perfekte Sicherheit nach Shannon). Sei M = M1, . . . ,Mn eine Mengevon Klartexten und C = C1, . . . ,Cn eine Menge von Chiffraten. Sei weiterhin G =

(V ,E) mit V = M ∪ C und E = (M,C) ∈ M× C | M kann Klartext von C sein. einGraph. Ein Verfahren, das einemMj ∈ M ein Ck ∈ C zuordnet ist genau dann perfekt si-cher, wennG vollständig und bipartit ist und alle Paare (M,C) ∈ E gleich wahrscheinlichsind.

Beweis. Leichte Übung.

Anschaulich gesprochen bedeutet das, dass jedes Chiffrat zu jedem Klartext ent-schlüsselt werden kann.

Page 127: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4.5. Kryptographie und Informationstheorie 121

Beispiel 39.

m1 c1

m2 c2

m3 c3

m4 c4

m5 c5

Abbildung 4.15: Graph für eine Caesar-Verschlüsselung.

m1 c1

m2 c2

m3 c3

m4 c4

m5 c5

Abbildung 4.16: Vollständiger bipartiter Graph für eine perfekt sichere Verschlüs-selung.

4.5.2.1 One-Time-Pads: Ein sicheres Kryptosystem

Basierend auf einem Verschlüsselungssystem von Gilbert Vernam lässt sich einbeweisbar sicheres Verschlüsselungsverfahren entwerfen.

Definition 4.37 (One-Time-Pad). SeiM ein Klartext und K eine gleichverteilt zufälligeZeichenfolge mit |K| = |M| und K,M im Dualsystem (also Ki,Mi ∈ 0, 1). Dann ist dasi-te Zeichen des Chiffrats Ci = Pi ⊕Ki, wobei ⊕ die bitweise XOR-Verknüpfung ist.

Man sieht leicht, dassMi = Ci⊕Ki gilt. One-Time-Pads sind allerdings nur sicher,solange der Schlüssel genau so lange wie der Klartext ist und nur einmal verwen-det wird. One-Time-Pads sind also ein Spezialfall der Vigenère-Verschlüsselung,bei der Schlüssel und Klartext gleich lang sind.

Satz 4.38. One-Time-Pads sind perfekt sicher.

Beweis. Zur Übung.

Page 128: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

122 4. Informationstheorie

Übrigens . . .

Während des Kalten Krieges führte die mehrfache Verwendung von Schlüs-seln durch die Sowjetunion dazu, dass die Vereinigten Staaten im VENONA-Projekt Teile der sowjetischen Kommunikation entschlüsseln konnten. Moder-ne Implementierungen verwenden technische Maßnahmen um sicherzustel-len, dass ein Schlüssel nur ein einziges mal verwendet wird.

4.5.2.2 Zusammenhang zur Entropie

Betrachen wir den Klartext M und den Schlüssel K jeweils als Zufallsquellen,dann existieren auch H(M) und H(K). Diese Betrachtungsweise erlaubt es unsnun, auch hier Zusammenhänge zu untersuchen. Man erkennt zum Beispiel, dassman die Äquivokation nun als Sicherheitsmaß betrachten kann. Interessant sinddabei jeweils

H(K|C) = −∑C,K

p(C,K) log(p(K|C))

H(M|C) = −∑C,M

p(C,M) log(p(M|C))

und wie sich diese Begriffe zu H(K) bzw. H(M) verhalten.

Satz 4.39. Für perfekte Sicherheit gilt H(M|C) = H(M).

Beweis. Es istp(C|M) =

p(C,M)

p(M).

Mit der Definition von perfekter Sicherheit (p(C|M) = p(C)) sieht man, dassp(C,M) = p(C) · p(M) gilt. Das heißt also, dass p(C) und p(M) stochastisch unab-hängig sind. Untersuchen wir also nun H(M|C), so folgt:

H(M|C) = −∑C,M

p(C,M) log(p(M|C))

= −∑C,M

p(C) · p(M) log(p(M))

= −∑C

p(C)︸ ︷︷ ︸1

·∑M

p(M) log(p(M))︸ ︷︷ ︸−H(M)

= H(M)

Umgekehrt also auch:

H(M|C) = H(M)⇒ p(M|C) = p(M).

Auch die Transinformation, also gegenseitige Information, verhält sich wie er-wartet:

I(M;C) = H(M) −H(M|C) = 0.

Page 129: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4.5. Kryptographie und Informationstheorie 123

4.5.3 Moderne Kryptographie

Ein interessantes kryptographisches Problem ist folgendes: Kann man über ei-ne Telefon-Verbindung gerecht eine Münze werfen, also ein zufälliges Bit ermit-teln, sodass keiner der beiden Gesprächspartner das Ergebnis bestimmen kann?Die triviale Möglichkeit, dass einer der beiden Gesprächsteilnehmer eine Mün-ze wirft, reicht offenbar nicht aus, denn er könnte ja behaupten, ein beliebigesErgebnis wäre herausgekommen. Nach einer Idee von Manuel Blum kann fol-gendes Protokoll genutzt werden:

1. Alice steckt ein zufälliges Bit b in einen Tresor.

2. Alice schickt Bob den Tresor, dieser kann ihn aber ohne Schlüssel nicht öff-nen.

3. Bob sendet Alice ein zufälliges Bit b ′.

4. Alice sendet Bob den Schlüssel des Tresors.

5. Nun ist b⊕ b ′ das Ergebnis des Münzwurfes.

Dabei legen sich beide auf ihr jeweiliges Bit fest, bevor sie das des anderen ken-nen. Außerdem ist b⊕ b ′ schon dann zufällig, wenn einer der beiden ehrlich ist,also sein Ergebnis echt zufällig wählt.

4.5.3.1 Allgemeines zu Bit-Commitments

Wie funktioniert nun der „Tresor“? Der Tresor ist offenbar das zentrale Elementin diesem Algorithmus. Ein Verfahren, das einen solchen Tresor implementiert,heißt Bit-Commitment. Es besteht dabei aus zwei Phasen:

• c = commit(b) — Das Bit b wird durch das Commitment c festgelegt, ohnejedoch den Wert zu offenbaren.

• unveil(c) — Deckt das Commitment c auf, gibt also aus, was b ist. Diesentspricht dem Öffnen des Tresors.

Um die Sicherheitseigenschaften definieren zu können, benötigen wir vernach-lässigbare Funktionen.

Definition 4.40 (Vernachlässigbare Funktion). Eine Funktion f : N → R heißt ver-nachlässigbar, wenn zu jeder positiven Konstante c ∈ N eine Schwellemc ∈ N existiert,ab der für alle n > mc gilt:

|f(n)| <1

nc.

Page 130: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

124 4. Informationstheorie

Für ein Bit-Commitment-Verfahren gibt es zwei Sicherheitseigenschaften:

Definition 4.41 (Eigenschaften von Commitment-Verfahren). Ein Commitment cist

• binding, wenn gilt:

Pr[unveil(commit(b)) 6= b] 6 ε

Es kann also nur genau der Wert aufgedeckt werden, auf den committet wurde.

• hiding, wenn gilt:Pr[b|c] − Pr[(1− b)|c] 6 ε

Ein Commitment auf die 0 ist ununterscheidbar von einem Commitment auf die 1.

Dabei ist ε eine vernachlässigbare Funktion.

Man spricht von informationstheoretischem Binding (unconditional binding),wenn selbst ein in jeder Form unbeschränkter Sender das Bit nicht anders aufde-cken kann, als es committet wurde. Informationstheoretisches Hiding (uncondi-tional hiding) heißt, dass die Nachricht in commit(b) statistisch unabhängig von bist, also keinerlei Information über b enthält. Man sieht, dass diese beiden Kriteri-en sich ausschließen: Wenn eine solches Verfahren im informationstheoretischenSinne binding ist, so muss die Nachricht von commit also eindeutig zuordenbarsein — damit ist sie jedoch nicht statistisch unabhängig von b. Wenn andererseitsdie Nachricht, die commit erzeugt, statistisch unabhängig von b ist, müssen mitder gleichen Argumentation unveil-Aufrufe existieren, die ein beliebiges Ergeb-nis haben, was allerdings nicht binding ist. Also kann im informationstheoreti-schen Sinne ein solches Verfahren nicht gleichzeitig binding und hiding sein.

Daher ist es nötig, dass es für eine Eigenschaft des Bit-Commitments „schwie-rig“ ist, sie zu brechen, statt unmöglich. Hier kommen komplexitätstheoretischeAnnahmen ins Spiel.

4.5.3.2 Mathematisches Werkzeug

Satz 4.42. Sei p eine Primzahl. Dann ist Z/pZ ein Körper. Z/pZ wird auch als Fpoder GF(p) bezeichnet. F∗p bezeichnet die multiplikative Gruppe (Fp \ 0, ·). Sie hat p− 1Elemente. g ∈ F∗p wird Erzeuger genannt, wenn 〈g〉 = g0,g1, . . . gp−2 = F∗p, g also F∗Perzeugt. Insbesondere gibt es für jedes y ∈ F∗p ein x, sodass gx = y.x wird diskreter Logarithmus von y zur Basis g genant.

Beweis. Ohne Beweis.

Definition 4.43 (DLOG). Sei p eine Primzahl, g ein Erzeuger von F∗p und h 6= 0 ∈ F∗p.Das Finden von einem x, sodass

gx = h

wird Diskreter-Logarithmus-Problem (DLOG-Problem) genannt.

Page 131: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

4.5. Kryptographie und Informationstheorie 125

Vermutung.DLOG /∈ P.

Man geht davon aus, dass es keinen effizienten Algorithmus gibt, um eine Lö-sung für das DLOG-Problem zu finden. Daher verwendet man den diskreten Lo-garithmus als injektive Einweg-Funktion.

Definition 4.44 (Einwegfunktion). Es bezeichne Un die Gleichverteilung auf 0, 1n

für n ∈ N. Eine Funktion f : 0, 1∗ → 0, 1∗ wird Einweg-Funktion genannt, wenn

1. f in Polynomialzeit berechnet werden kann und

2. wenn für jeden probabilistischen Polynomialzeit-Algorithmus A und hinreichendgroßes n

Pr[A(f(Un, 1n)) ∈ f−1(f(Un))] 6 ε

gilt, wobei ε eine vernachlässigbare Funktion in n ist.

Wir verlangen also für eine Einwegfunktion, dass das Finden von Urbildernschwierig ist.

Gegeben eine injektive Einwegfunktion f, kann man sich auf ein Bit b festlegen,indem man zufällige Vektoren x und r wählt mit b = 〈x, r〉, wobei 〈·〉 das innereProdukt beschreibt, und dann als commit(b) (f(x), r) zurückgibt. Als unveil ver-wendet man einfach (b, x, r), womit der Empfänger einfach überprüfen kann obb = 〈x, r〉. Dabei ist dieses Verfahren informationstheoretisch binding, aber nurkomplexitätstheoretisch hiding.

4.5.3.3 Pedersen-Commitments

Definition 4.45 (Pedersen-Commitments). Es sei G eine zyklische Gruppe, g und hErzeuger von G und m der zu committende Wert.

• commit(m) = Wähle eine Zufallszahl r und berechne c = gm · hr.

• unveil(c) = Decke m und r auf.

Satz 4.46. Pedersen-Commitments sind informationstheoretisch hiding.

Beweis. Es ist zu zeigen, dass es für alle m, r und m ′ 6= m auch ein r ′ gibt, sodassc = gm · hr = gm ′ · hr ′ :

c = gm · hr

= gm′· g−m

′+m · hr

= gm′· hlogh(g)·(−m

′+m) · hr

= gm′· hr+logh(g)·(−m

′+m)

Page 132: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

126 4. Informationstheorie

Satz 4.47. Pedersen-Commitments sind komplexitätstheoretisch binding (computation-ally binding).

Beweis. Aus dem Beweis zu Satz 4.46 folgt, dass man, um c = gm · hr als m ′ auf-zudecken, r ′ = r+ logh(g) · (−m

′ +m) berechnen müsste. Dies ist mindestens soschwierig wie das Lösen einer Instanz des DLOG-Problems.

Page 133: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

A. Anhang

A.1 Philosophisches: Die vier Grundgragen der Phi-losophie

Immanuel Kant hat sich vier Grundfragen der Philosophie aufgestellt und ver-sucht zu beantworten. Interessanterweise können wir mit dem Wissen, das wiraus der Vorlesung „Theoretische Grundlagen der Informatik“ mitgenommen ha-ben, auch Aussagen zu diesen Fragen machen.

A.1.1 Was kann ich wissen?

Mit dieser Frage beschäftigt sich die Erkenntnistheorie. Unter dem, was im Rah-men dieser Vorlesung behandelt wurde, ist zu dieser Frage natürlich sofort derGödelsche Unvollständigkeitssatz zu nennen: Wir können aus einem formalenSystem entweder nicht alles Korrekte beweisen, oder das System ist nicht wider-spruchsfrei. Die Widerspruchsfreiheit der Mathematik ist auch nicht beweisbar.Wie wir gesehen haben, sind die Implikationen aus diesen Sätzen enorm.Schließlich kann man natürlich auch den Standpunkt des Solipsismusses vertre-ten: Nur das Ich existitert, die Außenwelt ist nur Bewusstseinsinhalt ohne eige-ne Existenz. Die eigene Existenz ist dabei nach Descartes’ berühmten Grundsatz„Cogito ergo sum“ — „Ich denke, also bin ich“ — das einzige, über das manwirklich sicher sein kann.

A.1.2 Was soll ich tun?

Diese Frage wird von der Ethik behandelt. Auf diese Frage hat Kant mit seinemKategorischen Imperativ eine recht formale Antwort gegeben:

„Handle nur nach derjenigen Maxime, durch die du zugleich wollenkannst, dass sie ein allgemeines Gesetz werde.“

Page 134: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

128 A. Anhang

Man kann nun auch überlegen, ob man diese Frage mit den Mitteln der Infor-matik beantworten kann. Könnte man etwa durch Simulation die bestmöglichteHandlung ermitteln? Was ist diese Überhaupt, also was wäre die Zielfunktion?All dies hängt auch noch von der vierten Frage, der nach dem Menschenbild, ab.

A.1.3 Was darf ich hoffen?

Mit dieser Frage beschäftigt sich die Religionsphilosophie. Darunter fallen auchFragen wie: Existiert ein persönlicher Gott? Wie entsteht Bewusstsein? Gibt eshier einen Zusammenhang zum Kategorischen Imperativ?

A.1.4 Was ist der Mensch?

Mit dieser Frage setzt sich die Anthropologie auseinander. Hier stellt sich vor-allem die Frage nach den Grenzen: Wann fängt ein Mensch an zu leben? Wanngenau ist er tot? Wann begann die Menscheit als Spezies? Auch hier bietet dieInformatik vielleicht wieder die Möglichkeit, durch Simulation diese Fragen zu-mindest teilweise zu beantworten.

Page 135: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

Sätze

1.21 Satz (Satz von Myhill-Nerode) . . . . . . . . . . . . . . . . . . . . . . 171.24 Satz (Pumping-Lemma für reguläre Sprachen) . . . . . . . . . . . . 221.25 Satz (Abschlusseigenschaften von regulären Sprachen) . . . . . . . 241.34 Satz (Pumping-Lemma für kontextfreie Sprachen) . . . . . . . . . . 351.36 Satz (Abschlusseigenschaften von kontextfreien Sprachen) . . . . . 361.47 Satz (Abschlusseigenschaften von kontextsensitiven Sprachen) . . 431.48 Satz (Abschlusseigenschaften von rekursiv aufzählbaren Sprachen) 43

2.1 Satz (Einfache Church-Turing-These) . . . . . . . . . . . . . . . . . . 472.2 Satz (Erweiterte Church-Turing-These) . . . . . . . . . . . . . . . . . 472.8 Satz (Satz von Cantor) . . . . . . . . . . . . . . . . . . . . . . . . . . . 502.25 Satz (Satz von Rice) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552.28 Satz (Rekursionstheorem) . . . . . . . . . . . . . . . . . . . . . . . . . 592.33 Satz (Rekursionstheorem, zweite Form) . . . . . . . . . . . . . . . . 612.34 Satz (Gödels Erster Unvollständigkeitssatz) . . . . . . . . . . . . . . 612.41 Satz (Gödels Zweiter Unvollständigkeitssatz) . . . . . . . . . . . . . 63

3.32 Satz (Satz von Cook) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

4.32 Satz (Berlekamp, McEliece, van Tilborg) . . . . . . . . . . . . . . . . 1174.36 Satz (Perfekte Sicherheit nach Shannon) . . . . . . . . . . . . . . . . 120

Page 136: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

130 Sätze

Page 137: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

Definitionen

1.1 Definition (Alphabete, Wörter und Sprachen (Wiederholung)) . . . 11.3 Definition (Semi-Thue-System) . . . . . . . . . . . . . . . . . . . . . 21.4 Definition (Grammatik) . . . . . . . . . . . . . . . . . . . . . . . . . . 31.5 Definition (Reguläre Grammatik) . . . . . . . . . . . . . . . . . . . . 41.7 Definition (Deterministischer endlicher Automat) . . . . . . . . . . 61.8 Definition (Nichtdeterministischer endlicher Automat) . . . . . . . 81.9 Definition (ε-Abschluss) . . . . . . . . . . . . . . . . . . . . . . . . . 81.10 Definition (Sprache eines Automaten) . . . . . . . . . . . . . . . . . 91.13 Definition (Reguläre Ausdrücke) . . . . . . . . . . . . . . . . . . . . 121.16 Definition (Äquivalente Zustände) . . . . . . . . . . . . . . . . . . . 151.17 Definition (Äquivalenzklassenautomat) . . . . . . . . . . . . . . . . 151.19 Definition (Rechtslineare Äquivalenzrelation) . . . . . . . . . . . . . 161.20 Definition (Nerode-Relation) . . . . . . . . . . . . . . . . . . . . . . . 161.26 Definition (Kontextfreie Grammatik) . . . . . . . . . . . . . . . . . . 251.27 Definition (Kellerautomat) . . . . . . . . . . . . . . . . . . . . . . . . 261.30 Definition (Chomsky-Normalform) . . . . . . . . . . . . . . . . . . . 311.37 Definition (Kontextsensitive Grammatik) . . . . . . . . . . . . . . . 371.39 Definition (Grammatik vom Chomsky-Typ 0) . . . . . . . . . . . . . 381.40 Definition (Turing-Maschine) . . . . . . . . . . . . . . . . . . . . . . 391.42 Definition (Ausgabe einer Turing-Maschine) . . . . . . . . . . . . . 401.43 Definition (Sprache einer Turing-Maschine) . . . . . . . . . . . . . . 401.44 Definition (Linear beschränkte Turing-Maschine) . . . . . . . . . . 411.49 Definition (Chomsky-Hierarchie) . . . . . . . . . . . . . . . . . . . . 44

2.3 Definition (Akzeptor) . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.4 Definition (Entscheider) . . . . . . . . . . . . . . . . . . . . . . . . . . 482.5 Definition (Gödelnummer) . . . . . . . . . . . . . . . . . . . . . . . . 492.6 Definition (Universelle Turing-Maschine) . . . . . . . . . . . . . . . 492.10 Definition (Diagonalsprache) . . . . . . . . . . . . . . . . . . . . . . . 512.13 Definition (Universelle Sprache) . . . . . . . . . . . . . . . . . . . . . 522.15 Definition (Berechenbarkeit) . . . . . . . . . . . . . . . . . . . . . . . 522.16 Definition (Many-one-Reduzierbarkeit) . . . . . . . . . . . . . . . . 522.29 Definition (Mehrband-Turing-Maschine) . . . . . . . . . . . . . . . . 592.31 Definition (Minimale Turing-Maschine) . . . . . . . . . . . . . . . . 602.35 Definition (Grundlagen Logik (1)) . . . . . . . . . . . . . . . . . . . . 622.36 Definition (Grundlagen Logik (2)) . . . . . . . . . . . . . . . . . . . . 622.39 Definition (Beweis) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Page 138: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

132 Definitionen

2.44 Definition (Orakel-Turing-Maschine) . . . . . . . . . . . . . . . . . . 642.45 Definition (Turing-Reduzierbarkeit) . . . . . . . . . . . . . . . . . . 65

3.1 Definition (Die Funktionenklassen im O-Kalkül) . . . . . . . . . . . 673.2 Definition (Laufzeit einer deterministischen Turing-Maschine) . . 693.3 Definition (Klasse TIME) . . . . . . . . . . . . . . . . . . . . . . . . . 703.4 Definition (Laufzeit einer nichtdeterministischen Turing-Maschine) 703.6 Definition (k-Band-Turing-Maschine) . . . . . . . . . . . . . . . . . . 723.8 Definition (Klasse P) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.14 Definition (NP 1. Variante) . . . . . . . . . . . . . . . . . . . . . . . . 743.15 Definition (Orakel-Turing-Maschine 2. Variante) . . . . . . . . . . . 753.16 Definition (NP 2. Variante) . . . . . . . . . . . . . . . . . . . . . . . . 753.17 Definition (NP 3. Variante) . . . . . . . . . . . . . . . . . . . . . . . . 753.18 Definition (Klasse NTIME) . . . . . . . . . . . . . . . . . . . . . . . . 753.25 Definition (coNP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773.26 Definition (NP-Schwere) . . . . . . . . . . . . . . . . . . . . . . . . . 783.27 Definition (NP-Vollständigkeit) . . . . . . . . . . . . . . . . . . . . . 793.28 Definition (Kurzzusammenfassung: Semantik der Aussagenlogik) 793.29 Definition (Erfüllbare Formel) . . . . . . . . . . . . . . . . . . . . . . 803.30 Definition (Konjunktive Normalform) . . . . . . . . . . . . . . . . . 803.47 Definition (Counting Turing machine) . . . . . . . . . . . . . . . . . 943.48 Definition (Klasse #P) . . . . . . . . . . . . . . . . . . . . . . . . . . . 943.49 Definition (Probabilistische Turing-Maschine) . . . . . . . . . . . . 953.50 Definition (Klasse RP) . . . . . . . . . . . . . . . . . . . . . . . . . . . 953.51 Definition (Polynomprodukt-Inäquivalenz) . . . . . . . . . . . . . . 953.52 Definition (Klasse ZPP) . . . . . . . . . . . . . . . . . . . . . . . . . . 963.53 Definition (Klasse PP) . . . . . . . . . . . . . . . . . . . . . . . . . . . 973.54 Definition (Klasse BPP) . . . . . . . . . . . . . . . . . . . . . . . . . . 97

4.1 Definition (Information) . . . . . . . . . . . . . . . . . . . . . . . . . 1004.2 Definition (Entropie) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.3 Definition (Gemeinsame Entropie, Bedingte Entropie) . . . . . . . . 1024.5 Definition (Transinformation) . . . . . . . . . . . . . . . . . . . . . . 1034.6 Definition (Kolmogorow-Komplexität) . . . . . . . . . . . . . . . . . 1044.11 Definition (Präfix-Code) . . . . . . . . . . . . . . . . . . . . . . . . . . 1064.16 Definition (Maximum-Likelihood-Decoding) . . . . . . . . . . . . . 1124.17 Definition (Hamming-Distanz) . . . . . . . . . . . . . . . . . . . . . 1124.18 Definition (Hamming-Kugel) . . . . . . . . . . . . . . . . . . . . . . 1124.19 Definition (Minimaldistanz) . . . . . . . . . . . . . . . . . . . . . . . 1124.20 Definition (Informations-Rate) . . . . . . . . . . . . . . . . . . . . . . 1124.21 Definition (Perfekter Code) . . . . . . . . . . . . . . . . . . . . . . . . 1134.23 Definition (Linearer Code) . . . . . . . . . . . . . . . . . . . . . . . . 1144.24 Definition (Hamming-Metrik) . . . . . . . . . . . . . . . . . . . . . . 1144.26 Definition ((Fehler)-Syndrom) . . . . . . . . . . . . . . . . . . . . . . 1154.27 Definition (Dualer Code) . . . . . . . . . . . . . . . . . . . . . . . . . 1164.28 Definition (Projektiver Code) . . . . . . . . . . . . . . . . . . . . . . . 1164.29 Definition (Hamming-Code) . . . . . . . . . . . . . . . . . . . . . . . 116

Page 139: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

Definitionen 133

4.33 Definition (Grundlagen der Kryptographie) . . . . . . . . . . . . . . 1184.34 Definition (Perfekte Sicherheit) . . . . . . . . . . . . . . . . . . . . . 1204.37 Definition (One-Time-Pad) . . . . . . . . . . . . . . . . . . . . . . . . 1214.40 Definition (Vernachlässigbare Funktion) . . . . . . . . . . . . . . . . 1234.41 Definition (Eigenschaften von Commitment-Verfahren) . . . . . . . 1244.43 Definition (DLOG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244.44 Definition (Einwegfunktion) . . . . . . . . . . . . . . . . . . . . . . . 1254.45 Definition (Pedersen-Commitments) . . . . . . . . . . . . . . . . . . 125

Page 140: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

134 Definitionen

Page 141: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

Probleme

1.2 Problem (Wortproblem) . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.19 Problem (Halteproblem) . . . . . . . . . . . . . . . . . . . . . . . . . 532.23 Problem (Post’sches Korrespondenzproblem) . . . . . . . . . . . . . 54

3.9 Problem (PRIMES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.11 Problem (PATH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.12 Problem (RELPRIME) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.19 Problem (HAMILTONKREIS) . . . . . . . . . . . . . . . . . . . . . . . . . 763.20 Problem (EULERKREIS) . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.22 Problem (COMPOSITE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.24 Problem (SUBSET SUM) . . . . . . . . . . . . . . . . . . . . . . . . . . . 773.31 Problem (SAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.33 Problem (3-SAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.35 Problem (CLIQUE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853.37 Problem (FACTOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863.38 Problem (COLOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863.39 Problem (3COLOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863.41 Problem (HAMPATH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893.43 Problem (VERTEX COVER) . . . . . . . . . . . . . . . . . . . . . . . . . . 933.45 Problem (3DM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

4.31 Problem (COSET-WEIGHTS) . . . . . . . . . . . . . . . . . . . . . . . . . 117

Page 142: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

136 Probleme

Page 143: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

Glossar

A | B | C | D | E | G | H | I | K | L | M | N | O | P | R | S | T | U | V | W| Z

A

ε-Abschluss 8–10

Akzeptor 6, 7, 48, 51–54

Alphabet 1, 131

Äquivalenzklassenautomat 15, 18, 21

B

Bandmaschine 4, siehe Turing-Maschine

C

Caesar-Verschlüsselung 119, 121

Chomsky

Chomsky-Hierarchie 44

Chomsky-Normalform 31–33, 35

Chomsky-Typ 0 38, 39, 41,43–45, 54

Chomsky-Typ 1 37, 39, 41,44, 45

Chomsky-Typ 2 25, 44, 45

Chomsky-Typ 3 3, 4, 11,44, 45

Church-Turing-These 47, 73

Page 144: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

138 Glossar

CYK-Algorithmus 33, 34

D

Diagonalsprache 51

DLOG-Problem 124–126

E

endlicher Automat 1, 2, 4, 7, 11, 13–16, 23–25

DEA 6–8, 10,11, 14, 15,17, 18, 45

NEA 8–11

Entropie 100–103, 106

entscheidbar 48

Entscheider 48, 52–54, 60

G

Gödelnummer 48–51, 56–61, 64, 104

Grammatik 3

kontextfreie Grammatik 25, 30–33, 35

kontextsensitive Grammatik 37, 42

reguläre Grammatik 4

H

Halteproblem 53

Hamming-Code 116, 117

Hamming-Distanz 112

Hamming-Gewicht 114, 118

Hamming-Kugel 112, 116

Huffman-Code 109, 110

I

Page 145: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

Glossar 139

Index 16–18

Information 103, 106

Informationsrate 112, siehe Rate

K

Kellerautomat 1, 4, 24–28, siehe PDA

kleenescher Abschluss 1, 12, 24, 36, 43

Kolmogorow-Komplexität 103–105

L

leere Sprache 2, 12

LIFO Last In First Out. 5, 26

M

Many-one-Reduktion 52, 53, 78

Maximum-Likelihood-Decoding 112, 113

Minimaldistanz 112–116

N

Nerode-Automat 17, 18

O

One-Time-Pad 78, 121

Orakel 64

P

Parity-Code 115

PDA 4, 26, 28, 30, 31, 45

Pedersen-Commitment 125, 126

Post’sches Korrespondenzproblem 54

Präfix-Code 106, 107

Produktion 2

Page 146: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

140 Glossar

Pumping-Lemma 22–24, 34

R

RAM Random Access Memory. 5

Rate 112–114

regulärer Ausdruck 12, 14

Rekursionstheorem 58–61, 64

rekursiv 48, siehe entscheidbar

rekursiv aufzählbar 38, 44, 45, 48, siehe semi-entscheidbar

S

semi-entscheidbar 38, 44, 48, 51, 53, 54, 60, 63, 64

Semi-Thue-System 1–3

Shannon-Fano-Codierung 108

Soundness 63

Sprache 1, 131

reguläre Sprache 3, 4, 22,24, 33

Syndrom 115, 117

T

Transinformation 103

Turing-Maschine 4, 39–41, 45, 47–53, 56–61, 63–65, 67, 69–75,81, 83, 94, 95, 98, 103–105

Counting-Turing-Maschine 94

LBA 41, 42, 45

Orakel-Turing-Maschine 64, 65, 75,78–80

probabilistische Turing-Maschine 70, 95, 97

universelle Turing-Maschine 49

U

ε-Übergang 8, 10

Page 147: Theoretische Grundlagen der Informatik - crypto.iti.kit.edu · Vorwort Liebe Leserin, lieber Leser, Sie halten das Vorlesungsskript „Theoretische Grundlagen der Informatik“ in

Glossar 141

universelle Sprache 52, 53

V

Vigenère-Verschlüsselung 119, 121

W

Wort 1, 3, 7, 15, 131

leeres Wort 1, 2

Wortproblem 2, 33, 34

Z

Zustandsmaschine 4, siehe endlicher Automat