Sie sind auf Seite 1von 215

Theoretische Informatik II

Vorlesungsskript

von

E. Best

Stand: Februar 2006

Vorwort

Das vorliegende Skript fuhrt¨ in die klassischen Schwerpunkte der Theoretischen Informatik ein: Formale Sprachen und Automaten, Berechenbarkeit und Komplexit¨atstheorie. Es beruhte ursprunglic¨ h auf einem Skriptum von V. Claus und E.R. Olderog, wurde inzwischen in mehreren Iterationen jedoch erheblich ver¨andert. Neben der Neuorganisation des Stoffes (beginnend jetzt mit endlichen Automaten statt mit

¨

Turingmaschinen) und einer Uberarbeitung der Stoffauswahl (u.a. Weglassen allgemeiner Rekursion und

Aufnahme von Abschnitten ub¨ er Codierungen, Programme und polynomielle Reduktionen) haben viele

¨

neue Beispiele Eingang gefunden. Auch die meisten Beweise (z.B. der Beweis der Aquivalenz von Turing-

Akzeptierbarkeit und grammatischer Erzeugbarkeit) wurden neu gefasst.

Oldenburg, Februar 2006

E. Best

Das Skript wird st¨andig gepflegt. Wenn Ihnen beim Lesen Fehler auffallen, geben Sie diese bitte schriftlich im Sekretariat der Theoretischen Informatik bekannt oder schicken Sie eine Mail an

eike.best@informatik.uni-oldenburg.de.

¨

Stand der Anderungen (Version): 11. Februar 2006.

ACHTUNG: Das Skript wird in mehreren Teilen verteilt. Beim ersten Teil sind ein vorl¨aufiges Inhalts-

verzeichnis und ein vorl¨aufiger Index dabei. Diese beiden Teile werden zum Schluss der Vorlesung hin neu

berechnet und aktualisiert zur Verfugung¨

gestellt.

i

ii

Inhaltsverzeichnis

1 Einleitung

1

1.1 Modellbildungen in der Theoretischen Informatik

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

1

1.2 Literaturverzeichnis

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

3

2 Grundlagen

5

2.1 Mengentheoretische Grundbegriffe

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

2.1.1 Logik und Mengen

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

2.1.2 Relationen

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

7

2.1.3 Funktionen und Operationen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

11

2.1.4 Zahlentheoretische Grundfunktionen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

14

2.1.5 M¨achtigkeit und Abz¨ahlbarkeit

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

15

2.2 Graphen und B¨aume

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

20

2.3 Alphabete, W¨orter und Sprachen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

22

2.4 Elemente einer Programmiersprache

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

26

2.4.1 Deklarationen und Datentypen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

26

2.4.2 Aufbau eines Programms

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

27

2.4.3 Primitive Kommandos

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

28

2.4.4 Kommandoverknupfungen¨

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

28

2.4.5 WHILE- und LOOP-Registerprogramme

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

31

2.4.6 WHILE- und LOOP-berechenbare zahlentheoretische Funktionen

 

31

2.5 Codierungen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

32

¨

2.6 Ubungsaufgaben

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

35

3 Ersetzungssysteme und Grammatiken

 

37

3.1 Ersetzungssysteme

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

37

3.2 Grammatiken

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

44

¨

3.3 Ubungsaufgaben

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

51

 

i

ii

Vorlesungsskript von E. Best / Stand: 11. Februar 2006

4 Endliche Automaten und regul¨are Sprachen

 

53

4.1 Endliche Automaten: Definition und Beispiele

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

53

4.2 Endlich akzeptierbare Sprachen und Chomsky-3-Sprachen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

56

4.3 Abschlusseigenschaften .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

62

4.4 Regul¨are Ausdruc¨ ke

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

65

4.5 Struktureigenschaften regul¨arer Sprachen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

68

4.5.1 Das Pumping-Lemma fur¨

4.5.2 Sprachkongruenzen .

.

.

.

regul¨are Sprachen . .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

69

70

4.5.3 Deterministische Minimalautomaten

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

73

4.6 Entscheidbarkeitsfragen

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

77

¨

4.7 Ubungsaufgaben

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

79

5 Kellerautomaten und kontextfreie Sprachen

 

81

5.1 Kontextfreie Grammatiken und kontextfreie Sprachen

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

81

5.1.1 Notation und Beispiele .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

81

5.1.2 Links- und Rechtsableitungen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

82

5.1.3 Parseb¨aume .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

83

5.1.4 Mehrdeutigkeit

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

86

5.1.5 Normalformen kontextfreier Grammatiken .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

87

5.2 Das Pumping-Lemma fur¨

5.3 Kellerautomaten

.

.

.

.

.

kontextfreie Sprachen . .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

89

93

5.3.1

Definition und Beispiel

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

93

¨

5.3.2

Aquivalenz der Akzeptanzbedingungen .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

98

¨

5.3.3

Aquivalenz von Kellerautomaten und kontextfreien Grammatiken

 

100

5.4 Abschlusseigenschaften .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

108

5.5 Deterministisch kontextfreie Sprachen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

110

5.6 Entscheidbarkeitsfragen

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

114

¨

5.7 Ubungsaufgaben

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

118

6 Turingmaschinen

 

121

6.1 Aufbau einer Turingmaschine

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

122

6.2 Beispiele

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

124

6.3 Das Verhalten einer Turingmaschine

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

129

6.4 Umwandlung einer NTM in eine DTM

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

131

6.5 Turingmaschinen als Sprachakzeptoren

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

133

6.6 Turingmaschinen als Berechner von partiellen Funktionen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

136

6.7 Turingmaschinen und Grammatiken

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

140

6.7.1

Chomsky-0-Sprachen

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

140

6.7.2

Chomsky-1-Sprachen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

143

¨

6.8 Ubungsaufgaben

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

145

Theoretische Informatik II - Wintersemester 2005/06

iii

7 Berechenbarkeit und Entscheidbarkeit

 

147

7.1 Aufz¨ahlbarkeit und Entscheidbarkeit

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

147

7.1.1 Definitionen .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

147

7.1.2 Codierung von Entscheidungsproblemen als Sprachen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

149

7.1.3 Beziehungen zwischen Aufz¨ahlbarkeit und Entscheidbarkeit

.

.

.

.

.

.

.

.

.

.

.

.

.

153

7.2 Unentscheidbarkeit und Unberechenbarkeit

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

155

7.2.1 Abz¨ahlbarkeitsargumente und DTM-Codierungen .

.

.

.

.

.

.

.

.

.

.

.

.

.

.