Vorlesung Grundlagen der Theoretischen Informatik

Werbung
Vorlesung
Grundlagen der Theoretischen Informatik /
Einführung in die Theoretische Informatik I
Ulrich Furbach
Institut für Informatik
Sommersemester 2014
Furbach – Grundlagen d. Theoretischen Informatik:
SS 2014
1 / 131
Dank
Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den
Vorlesungen von
Katrin Erk (gehalten an der Universität Koblenz-Landau)
Jürgen Dix (gehalten an der TU Clausthal)
Bernhard Beckert (gehalten an der Universität Koblenz-Landau)
Ihnen gilt mein herzlicher Dank.
– Ulrich Furbach, April 2012
Furbach – Grundlagen d. Theoretischen Informatik:
SS 2014
2 / 131
Teil I
Einführung
1
Organisatorisches
2
Motivation, Inhalt der Vorlesung
3
Kurzer Überblick: Logik
4
Kurzer Überblick: Beweismethoden und Mathematische Konzepte
5
Kurzer Überblick: Beweismethoden und Mathematische Konzepte
Furbach – Grundlagen d. Theoretischen Informatik: Organisatorisches
SS 2014
3 / 131
Literatur
Buch zur Vorlesung
Erk, Katrin and Priese, Lutz (2002).
Theoretische Informatik: Eine umfassende Einführung.
2. Auflage.
Springer-Verlag.
Furbach – Grundlagen d. Theoretischen Informatik: Organisatorisches
SS 2014
4 / 131
Literatur
Weitere Literatur
J. Hopcroft, R. Motwani, and J. Ullman (2002).
Einführung in die Automatentheorie, Formale Sprachen und
Komplexitätstheorie.
Pearson.
G. Vossen and K.-U. Witt (2004).
Grundkurs Theoretische Informatik.
Vieweg.
U. Schöning (1994).
Theoretische Informatik: kurzgefaßt.
Spektrum-Verlag.
Furbach – Grundlagen d. Theoretischen Informatik: Organisatorisches
SS 2014
5 / 131
Teil I
Einführung
1
Organisatorisches
2
Motivation, Inhalt der Vorlesung
3
Kurzer Überblick: Logik
4
Kurzer Überblick: Beweismethoden und Mathematische Konzepte
5
Kurzer Überblick: Beweismethoden und Mathematische Konzepte
Furbach – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung
SS 2014
6 / 131
Theoretische Informatik befasst sich mit . . .
Grundlegende Konzepte der Informatik
Probleme und ihre Beschreibung
Systeme/Automaten/Maschinen, die Probleme lösen
Lösbarkeit von Problemen
(Entscheidbarkeit/Berechenbarkeit und deren Grenzen)
Schwierigkeit (Komplexität) der Lösung von Problemen
Furbach – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung
SS 2014
7 / 131
Teilgebiete der Theoretischen Informatik
Teilgebiete
Formale Sprachen
Automatentheorie
Berechenbarkeitstheorie
Komplexitätstheorie
(Logik)
Furbach – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung
SS 2014
8 / 131
Warum Theoretische Informatik?
Theoretische Informatik . . .
ist die Grundlage
ist wichtig
(bspw. für Algorithmentechnik, Software Engineering, Compilerbau)
hilft, weitere Themen/Vorlesungen der Informatik zu verstehen
veraltet nicht
macht Spaß
Furbach – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung
SS 2014
9 / 131
Inhalt der Vorlesung
1
Terminologie
2
Endliche Automaten und reguläre Sprachen
3
Kellerautomaten und kontextfreie Sprachen
4
Turingmaschinen und rekursiv aufzählbare Sprachen
5
Berechenbarkeit, (Un-)Entscheidbarkeit
6
Komplexitätsklassen P und NP
Furbach – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung
SS 2014
10 / 131
Teil I
Einführung
1
Organisatorisches
2
Motivation, Inhalt der Vorlesung
3
Kurzer Überblick: Logik
4
Kurzer Überblick: Beweismethoden und Mathematische Konzepte
5
Kurzer Überblick: Beweismethoden und Mathematische Konzepte
Furbach – Grundlagen d. Theoretischen Informatik: Logik
SS 2014
11 / 131
Logische Formeln
Aussagenlogische Operatoren
¬ Negationssymbol („nicht“)
∧ Konjunktionssymbol („und“)
∨ Disjunktionssymbol („oder“)
⇒ Implikationssymbol („wenn . . . dann“)
⇔ Symbol für Äquivalenz („genau dann, wenn“)
Zusätzliche prädikatenlogische Operatoren
∀ Allquantor („für alle“)
∃ Existenzquantor („es gibt“)
Furbach – Grundlagen d. Theoretischen Informatik: Logik
SS 2014
12 / 131
Logische Formeln
Formeln
Atomare Aussagen sind Formeln
Seien
A, B Formeln, x eine Variable,
¬A,
(A ∧ B ),
(A ∨ B ),
(A ⇒ B ),
dann sind
(A ⇔ B ),
∀xA,
∃xA
Formeln
Furbach – Grundlagen d. Theoretischen Informatik: Logik
SS 2014
13 / 131
Logische Formeln
Beispiel 3.1
¬ (y ≤ x ) ⇒ ∃z (¬(z ≤ x ) ∧ ¬(y ≤ z ))
| {z }
|
{z
}
Atom
Skopus von ∃z
Furbach – Grundlagen d. Theoretischen Informatik: Logik
SS 2014
14 / 131
Logische Formeln
Beispiel 3.2
„Alle, die in Koblenz studieren, sind schlau“
∀
x (studiertIn(x , koblenz ) ⇒ schlau (x ))
|{z} |
{z
}
Variable
|
Formel (Skopus)
{z
}
Formel
„Jemand, der in Landau studiert ist schlau“
∃
x (studiertIn(x , landau ) ∧ schlau (x ))
|{z} |
{z
}
Variable
|
Formel (Skopus)
{z
Formel
Furbach – Grundlagen d. Theoretischen Informatik: Logik
}
SS 2014
15 / 131
Eigenschaften von Quantoren
Quantoren gleicher Art kommutieren
∀x ∀y
∃x ∃y
ist das gleiche wie
ist das gleiche wie
Furbach – Grundlagen d. Theoretischen Informatik: Logik
∀y ∀x
∃y ∃x
SS 2014
16 / 131
Eigenschaften von Quantoren
Verschiedene Quantoren kommutieren NICHT
∃x ∀y
ist nicht das gleiche wie
∀y ∃x
Beispiel 3.3
∃x ∀y loves(x , y )
Es gibt eine Person, die jeden Menschen in der Welt liebt
(einschließlich sich selbst)
∀y ∃x loves(x , y )
Jeder Mensch wird von mindestens einer Person geliebt
(Beides hoffentliche wahr aber verschieden:
das erste impliziert das zweite aber nicht umgekehrt)
Furbach – Grundlagen d. Theoretischen Informatik: Logik
SS 2014
17 / 131
Eigenschaften von Quantoren
Verschiedene Quantoren kommutieren NICHT
∃x ∀y
ist nicht das gleiche wie
∀y ∃x
Beispiel 3.4
∀x ∃y mutter (y , x )
Jeder hat eine Mutter
(richtig)
∃y ∀x mutter (y , x )
Es gibt eine Person, die die Mutter von jedem ist
Furbach – Grundlagen d. Theoretischen Informatik: Logik
(falsch)
SS 2014
18 / 131
Eigenschaften von Quantoren
Dualität der Quantoren
∀x . . .
ist das gleiche wie
¬∃x ¬ . . .
∃x . . .
ist das gleiche wie
¬∀x ¬ . . .
Beispiel 3.5
∀x mag (x , eiskrem)
ist das gleiche wie
¬∃x ¬mag (x , eiskrem)
∃x mag (x , broccoli )
ist das gleiche wie
¬∀x ¬mag (x , broccoli )
Furbach – Grundlagen d. Theoretischen Informatik: Logik
SS 2014
19 / 131
Eigenschaften von Quantoren
∀ distributiert NICHT über ∨
∀x (. . . ∨ . . .)
ist NICHT das gleiche wie
(∀x . . .) ∨ (∀x . . .)
Beispiel 3.6
∀x (eiskrem(x ) ∨ broccoli (x ))
ist NICHT das gleiche wie
(∀x eiskrem(x )) ∨ (∀x broccoli (x ))
Furbach – Grundlagen d. Theoretischen Informatik: Logik
SS 2014
20 / 131
Eigenschaften von Quantoren
∃ distributiert NICHT über ∧
∃x (. . . ∧ . . .)
ist NICHT das gleiche wie
(∃x . . .) ∧ (∃x . . .)
Beispiel 3.7
∃x (gerade(x ) ∧ ungerade(x ))
ist NICHT das gleiche wie
(∃x gerade(x )) ∧ (∃x ungerade(x ))
Furbach – Grundlagen d. Theoretischen Informatik: Logik
SS 2014
21 / 131
Beispiele: Familienverhältnisse
Beispiel 3.8
„Brüder sind Geschwister“
∀x ∀y (bruder (x , y ) ⇒ geschwister (x , y ))
„bruder“ ist symmetrisch
∀x ∀y (bruder (x , y ) ⇔ bruder (y , x ))
„Mütter sind weibliche Elternteile“
∀x ∀y (mutter (x , y ) ⇔ weiblich(x ) ∧ elter (x , y )))
„Ein Cousin ersten Grades ist
das Kind eines Geschwisters eines Elternteils“
∀x ∀y (cousin1(x , y ) ⇔
∃p∃ps (elter (p, x ) ∧ geschwister (ps, p) ∧ elter (ps, y )))
Furbach – Grundlagen d. Theoretischen Informatik: Logik
SS 2014
22 / 131
Beispiele: Familienverhältnisse
Beispiel 3.9
Formalisierung von „Bruder, der nicht nur Halbbruder ist“
∀x ∀y bruder (x , y ) ⇔ (¬(x = y ) ∧
∃m∃v (¬(m = v ) ∧
elter (m, x ) ∧ elter (v , x ) ∧
elter (m, y ) ∧ elter (v , y )))
Furbach – Grundlagen d. Theoretischen Informatik: Logik
SS 2014
23 / 131
Teil I
Einführung
1
Organisatorisches
2
Motivation, Inhalt der Vorlesung
3
Kurzer Überblick: Logik
4
Kurzer Überblick: Beweismethoden und Mathematische Konzepte
5
Kurzer Überblick: Beweismethoden und Mathematische Konzepte
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
24 / 131
Wichtige Beweismethoden
Deduktiver Beweis
Aneinanderkettung von Argumenten/Aussagen
A = A1 , A2 , . . . , An = B
Zwischenaussagen Ai müssen schlüssig aus dem Vorhergehenden
folgen
Verwendet werden dürfen nur
– Annahmen aus A
– mathematische Grundgesetze
– bereits bewiesene Aussagen
– logische Schlussfolgerungen
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
25 / 131
Wichtige Beweismethoden
Beispiel 4.1 (Deduktiver Beweis)
Zu beweisen:
Wenn x die Summe der Quadrate von vier positiven ganzen Zahlen ist,
dann gilt 2x ≥ x 2
Beweis in schematischer Darstellung:
1.
2.
3.
4.
5.
Aussage
x = a2 + b 2 + c 2 + d 2
a ≥ 1, b ≥ 1, c ≥ 1, d ≥ 1
a 2 ≥ 1, b 2 ≥ 1, c 2 ≥ 1, d 2 ≥ 1
x ≥4
2x ≥ x 2
Begründung
Gegeben
Gegeben
(2) und Gesetze der Arithmetik
(1), (3) und Gesetze der Arithmetik
(4) und Satz aus der Analysis
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
26 / 131
Wichtige Beweismethoden
Beweis durch Kontraposition
Beweise, dass nicht A aus der Annahme nicht B folgt:
¬B ⇒ ¬A
logisch äquivalent zu
A⇒B
Widerspruchsbeweis
Beweise, dass aus A und nicht B ein Widerspruch folgt:
(A ∧ ¬B ) ⇔ false
logisch äquivalent zu
A⇒B
A kann „leer“ sein
Widerspruch zu ∀-Aussage gelingt durch Gegenbeispiel
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
27 / 131
Wichtige Beweismethoden
Induktionsbeweise
Standardinduktion:
Gilt A(0) und
folgt A(i + 1) aus A(i ),
dann gilt A(n) für alle n ∈ N
Vollständige Induktion:
Gilt A(0) und
folgt A(i + 1) aus A(0) ∧ . . . ∧ A(i ),
dann gilt A(n) für alle m ∈ N
Strukturelle Induktion (auf Datentypen wie Listen, Bäumen, Wörtern:
Gilt A für das Basiselement und
folgt die Gültigkeit von A für ein beliebiges Element aus der
Gültigkeit von A für seine Unterelemente,
dann gilt A für alle Elemente.
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
28 / 131
Mathematische Konzepte
Grundkonzepte (z.B. aus DAS)
Elementare Mengentheorie
– {x |P (x )}
– ∪, ∩, \
Bezug zwischen Mengen, Relationen und Funktionen (wichtig!)
Elementare Gesetze der Algebra
Strukturen wie Listen, (endliche) Folgen, Graphen, Bäume
Wörter (Strings)
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
29 / 131
Mathematische Konzepte
Funktionen
Funktion f : S → S 0 : Abbildung zwischen den Grundmengen S und S 0 ,
nicht unbedingt auf allen Elementen von S definiert
Definitionsbereich D
Wertebereich W
f eine totale Funktion: f für alle Elemente des Wertebereichs W definiert
∀x ∈D ∃y ∈W (x , y ) ∈ f
Injektiv, surjektiv, bijektiv
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
30 / 131
Teil I
Einführung
1
Organisatorisches
2
Motivation, Inhalt der Vorlesung
3
Kurzer Überblick: Logik
4
Kurzer Überblick: Beweismethoden und Mathematische Konzepte
5
Kurzer Überblick: Beweismethoden und Mathematische Konzepte
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
31 / 131
Wichtige Beweismethoden
Deduktiver Beweis
Aneinanderkettung von Argumenten/Aussagen
A = A1 , A2 , . . . , An = B
Zwischenaussagen Ai müssen schlüssig aus dem Vorhergehenden
folgen
Verwendet werden dürfen nur
– Annahmen aus A
– mathematische Grundgesetze
– bereits bewiesene Aussagen
– logische Schlussfolgerungen
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
32 / 131
Wichtige Beweismethoden
Beispiel 5.1 (Deduktiver Beweis)
Zu beweisen:
Wenn x die Summe der Quadrate von vier positiven ganzen Zahlen ist,
dann gilt 2x ≥ x 2
Beweis in schematischer Darstellung:
1.
2.
3.
4.
5.
Aussage
x = a2 + b 2 + c 2 + d 2
a ≥ 1, b ≥ 1, c ≥ 1, d ≥ 1
a 2 ≥ 1, b 2 ≥ 1, c 2 ≥ 1, d 2 ≥ 1
x ≥4
2x ≥ x 2
Begründung
Gegeben
Gegeben
(2) und Gesetze der Arithmetik
(1), (3) und Gesetze der Arithmetik
(4) und Satz aus der Analysis
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
33 / 131
Wichtige Beweismethoden
Beweis durch Kontraposition
Beweise, dass nicht A aus der Annahme nicht B folgt:
¬B ⇒ ¬A
logisch äquivalent zu
A⇒B
Widerspruchsbeweis
Beweise, dass aus A und nicht B ein Widerspruch folgt:
(A ∧ ¬B ) ⇔ false
logisch äquivalent zu
A⇒B
A kann „leer“ sein
Widerspruch zu ∀-Aussage gelingt durch Gegenbeispiel
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
34 / 131
Wichtige Beweismethoden
Induktionsbeweise
Standardinduktion:
Gilt A(0) und
folgt A(i + 1) aus A(i ),
dann gilt A(n) für alle n ∈ N
Vollständige Induktion:
Gilt A(0) und
folgt A(i + 1) aus A(0) ∧ . . . ∧ A(i ),
dann gilt A(n) für alle m ∈ N
Strukturelle Induktion (auf Datentypen wie Listen, Bäumen, Wörtern:
Gilt A für das Basiselement und
folgt die Gültigkeit von A für ein beliebiges Element aus der
Gültigkeit von A für seine Unterelemente,
dann gilt A für alle Elemente.
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
35 / 131
Wiederholung
Fragen
Wie distribuieren Quanten über Junktoren?
Welche Beweismethoden benutzen wir?
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
36 / 131
Mathematische Konzepte
Grundkonzepte (z.B. aus DAS)
Elementare Mengentheorie
– {x |P (x )}
– ∪, ∩, \
Bezug zwischen Mengen, Relationen und Funktionen (wichtig!)
Elementare Gesetze der Algebra
Strukturen wie Listen, (endliche) Folgen, Graphen, Bäume
Wörter (Strings)
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
37 / 131
Mathematische Konzepte
Funktionen
Funktion f : S → S 0 : Abbildung zwischen den Grundmengen S und S 0 ,
nicht unbedingt auf allen Elementen von S definiert
Definitionsbereich D
Wertebereich W
f eine totale Funktion: f für alle Elemente des Wertebereichs W definiert
∀x ∈D ∃y ∈W (x , y ) ∈ f
Injektiv, surjektiv, bijektiv
Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte
SS 2014
38 / 131
Inhalt von Teil II
In den folgenden Abschnitten führen wir die Begriffe
Sprache
Grammatik
ein.
Wir untersuchen insbesondere
1
wie man Probleme aus der Mathematik, Graphentheorie, Logik als
Probleme über Sprachen formulieren kann.
2
wie man Klassen von Grammatiken von steigendem Schwierigkeitsgrad
definiert: Chomsky-Hierarchie.
3
wieviele Grammatiken und Sprachen es überhaupt gibt
(soviele wie natürliche Zahlen, reelle Zahlen oder komplexe Zahlen?)
Furbach – Grundlagen d. Theoretischen Informatik:
SS 2014
39 / 131
Teil II
Terminologie
6
Sprache, Grammatik
7
Warum Sprachen?
8
Die Chomsky-Hierarchie
9
Probleme über Sprachen
10
Endlich, unendlich und dann?
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
40 / 131
Alphabete, Wörter
Definition 6.1 (Alphabet)
Ein Alphabet ist eine Menge von Zeichen/Buchstaben
Grundlage einer Sprache (die zur Verfügung stehenden Zeichen)
Meist endlich
Definition 6.2 (Wort)
Ein Wort (über einem Alphabet Σ)
ist eine endliche Folge von Zeichen aus Σ
|w | bezeichnet Länge eines Wortes w
ε bezeichnet das leere Wort
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
41 / 131
Alphabete, Wörter
Operationen auf Wörtern
Verknüpfung (Konkatenation):
w ◦ w0
assoziativ, oft geschrieben als ww 0
i-te Potenz:
w 0 = ε,
w i +1 = ww i
Reverse:
w R = das Wort w rückwärts
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
42 / 131
Sprache
Definition 6.3 (Sprache)
Eine Sprache L (über einem Alphabet Σ)
ist eine Menge von Wörtern über Σ.
Operationen auf Sprachen
Konkatenation:
L ◦ M = {w ◦ w 0 | w ∈ L, w 0 ∈ M }
i-te Potenz:
L0 = {ε},
Li +1 := LLi
Reverse:
LR = {w R : w ∈ L}
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
43 / 131
Sprache
Kleene-Hülle
L∗ = L0 ∪ L1 ∪ L2 ∪ . . .
Variante:
L+ = LL∗ = L1 ∪ L2 ∪ . . .
Σ∗ bezeichnet die Menge aller Wörter über Σ
Genau genommen besteht ein Unterschied:
ein Buchstabe
6= Wort, das nur aus dem einen Buchstaben besteht
Darum ist Σ selbst keine Sprache über Σ
(Oft wird über diesen Unterschied hinweggesehen)
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
44 / 131
Reguläre Ausdrücke
Definition 6.4 (Reguläre Ausdrücke)
Menge RegΣ der regulären Ausdrücke (über Σ) ist definiert durch:
1
0 ist ein regulärer Ausdruck
2
Für jedes a ∈ Σ ist a ein regulärer Ausdruck
3
Sind r und s reguläre Ausdrücke, so auch
(r + s) (Vereinigung),
(rs) (Konkatenation),
(r ∗ ) (Kleene Stern)
Klammern können weggelassen werden, dann
∗
hat Vorrang vor Konkatenation
Konkatenation hat Vorrang vor +
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
45 / 131
Reguläre Ausdrücke
Definition 6.5 (Semantik regulärer Ausdrücke)
Ein regulärer Ausdruck r stellt eine Sprache I(r ) über Σ wie folgt dar:
I(0) := 0/
I(a) := {a}
für a ∈ Σ
I(r + s) := I(r )∪I(s)
I(r s) := I(r )I(s)
I(r ∗ ) := I(r )∗
Wir benutzen auch das Makro . . .
1 := 0∗
Es gilt:
I(1) = {ε}
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
46 / 131
Reguläre Ausdrücke
Übung
Welche Sprachen werden durch die folgenden regulären Ausdrücke
dargestellt?
aa
(a + b)∗
aa∗ + bb∗
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
47 / 131
Wiederholung
Fragen
Wie sind reguläre Ausdrücke definiert?
was ist ihre Semantik?
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
48 / 131
Reguläre Ausdrücke als Suchmuster für grep
Das Kommando grep (bzw. egrep)
Sucht Wörter (Strings) in Dateien
Benutzt reguläre Ausdrücke als Suchmuster
Sehr schnell
Volle Funktionalität mit egrep
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
(U NIX /L INUX)
SS 2014
49 / 131
Reguläre Ausdrücke als Suchmuster für grep
Syntax bei grep
grep
ww 0
w |w 0
w*
w+
Regulärer Ausdruck
ww 0
w + w0
w∗
w+
Syntactic Sugar
grep
[abc]
[a-d]
.
Regulärer Ausdruck
a+b+c
a+b+c +d
beliebiges Zeichen aus Σ
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
50 / 131
Grammatik
Grammatik
Beschreibt eine Sprache
Menge von Regeln, mit deren Hilfe man Wörter ableiten kann
Die zu einer Grammatik gehörende Sprache besteht aus den
– ableitbaren
– terminalen
Wörtern
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
51 / 131
Grammatik
Definition 6.6 (Grammatik)
Eine Grammatik G über einem Alphabet Σ ist ein Tupel
G = (V , T , R , S )
Dabei ist
V eine endliche Menge von Variablen
T ⊆ Σ eine endliche Menge von Terminalen mit V ∩ T = 0/
R eine endliche Menge von Regeln
S ∈ V das Startsymbol
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
52 / 131
Grammatik
Definition 6.7 (Regel)
Eine Regel ist ein Element
(P , Q ) ∈ (V ∪ T )∗ V (V ∪ T )∗ × (V ∪ T )∗
Bezeichnung:
P: Prämisse
Q: Conclusio
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
53 / 131
Grammatik
Definition 6.8 (Regel)
Eine Regel ist ein Element
(P , Q ) ∈ (V ∪ T )∗ V (V ∪ T )∗ × (V ∪ T )∗
Das heißt:
P und Q sind Wörter über (V ∪ T )
P muss mindestens eine Variable enthalten
Q ist beliebig
Bezeichnung:
P: Prämisse
Q: Conclusio
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
54 / 131
Grammatik
Schreibweise für Regeln
Schreibweise für Regel (P , Q ):
P →G Q
bzw.
P→Q
Abkürzung für mehrere Regeln mit derselben Prämisse:
P → Q1 | Q2 | Q3
für
P → Q1 , P → Q2 , P → Q3
Konvention (meistens)
Variablen als Großbuchstaben
Terminale als Kleinbuchstaben
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
55 / 131
Grammatik
Beispiel 6.9
S → B
B → do begin B end
B → A
A → nop A
A → ε
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
56 / 131
Rechnung einer Grammatik
Algorithmus
Eingabe: Eine Grammatik
1
aktuellWort := S
2
Wähle eine Regel P → Q, so dass P in aktuellWort vorkommt
3
Ersetze (ein) Vorkommen von P in aktuellWort durch Q
4
Falls aktuellWort noch Variablen enthält (nicht terminal), GOTO 2
(Startsymbol)
Ausgabe: Das terminale Wort aktuellWort
Beachte
Die Berechnung
ist nicht deterministisch (Auswahl der Regel)
kann mehr als ein Ergebnis liefern (oder auch keines)
kann in Endlosschleifen geraten
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
57 / 131
Rechnung einer Grammatik
Beispiel 6.10 (Einfache Grammatiken)
Welche Wörter kann man ableiten?
G1 = ({S }, {a}, {R1 , R2 }, S )
R1
=
S → aS
R2
=
S→ε
G2 = ({S }, {a, b}, {R1 , R2 }, S )
R1
=
S → aSb
R2
=
S→ε
Sei G3 = ({S , S0 }, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, {R1 , R2 }, S )
R1
=
S → 1S | 2S0 | 3S | 4S0 | 5S | 6S0 | 7S | 8S0 | 9S
R2
=
S0 → S | ε
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
58 / 131
Rechnung einer Grammatik
Beispiel 6.11 (Einfache Grammatiken)
Welche Wörter kann man ableiten?
Ga = ({S }, {a}, {R1 , R2 }, S )
R1
=
S → aS
R2
=
S→ε
Gab = ({S }, {a, b}, {R1 , R2 }, S )
R1
=
S → aSb
R2
=
S→ε
Sei Ggerade = ({S , S0 }, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, {R1 , R2 }, S )
R1
=
S → 1S | 2S0 | 3S | 4S0 | 5S | 6S0 | 7S | 8S0 | 9S
R2
=
S0 → S | ε
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
59 / 131
Rechnung einer Grammatik
Definition 6.12 (Ableitung, Rechnung)
Gegeben:
Grammatik G = (V , T , R , S )
Wörter w , w 0 aus (V ∪ T )∗
Es gilt
w =⇒G w 0
(„w geht über in w 0 “)
falls
∃u , v ∈ (V ∪ T )∗ ∃P → Q ∈ R
w = uPv und w 0 = uQv
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
60 / 131
Rechnung einer Grammatik
Schreibweise für Ableitung
w =⇒∗G w 0
falls es Wörter w0 , . . . , wn ∈ (V ∪ T )∗ (n ≥ 0) gibt mit
w = w0
wm = w 0
wi =⇒G wi +1
für 0 ≤ i < n
Merke: w =⇒∗G w gilt stets (n = 0)
Die Folge w0 , . . . , wn heißt Ableitung oder Rechnung
– von w0 nach wn
– in G
– der Länge n
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
61 / 131
Vorsicht: Indeterminismus
Beispiel 6.13 (Indeterminismus)
Wir betrachten die Grammatik G = ({S , B }, {a, b, c }, {R0 , R1 , R2 , R3 }, S )
R0 =
R1 =
R2 =
R3 =
S → aBBc
B→b
B → ba
BB → bBa
Drei Möglichkeiten, das Wort abbac zu erzeugen:
S
S
S
=⇒R0
=⇒R0
=⇒R0
aBBc
aBBc
aBBc
=⇒R1
=⇒R2
=⇒R3
abBc
aBbac
abBac
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
=⇒R2
=⇒R1
=⇒R1
abbac
abbac
abbac
SS 2014
62 / 131
Vorsicht: Indeterminismus
Warum ist das ein Feature und kein Bug?
Erlaubt einfachere Definition von Grammatiken
Für manche Sprachen gibt es keine eindeutige Grammatiken
Eine Grammatik beschreibt die Struktur der Wörter.
Ein Wort kann mehrere mögliche Strukturen haben.
Für natürliche Sprachen braucht man das unbedingt:
Manche Sätze sind mehrdeutig (in ihrer Grammatik),
also müssen auch die Grammatiken mehrdeutig sein!
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
63 / 131
Vorsicht: Indeterminismus
Beispiel 6.14 (Mehrdeutige Grammatik natürlichsprachlicher Sätze)
Time flies like an arrow.
Fruit flies like a banana.
Beide Sätze haben zwei mögliche grammatische Strukturen.
Erst unser semantisches Verständnis wählt eine aus.
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
64 / 131
Erzeugte Sprache, Äquivalenz
Definition 6.15 (Erzeugte Sprache)
leitungGegeben: Eine Grammatik G
Die von G erzeugte Sprache L(G) ist die Menge aller terminalen Wörter,
die durch G vom Startsymbol S aus erzeugt werden können:
L( G )
:=
{w ∈ T ∗ | S =⇒∗G w }
Definition 6.16 (Äquivalenz)
Zwei Grammatiken G1 , G2 heißen äquivalent gdw
L(G1 ) = L(G2 )
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
65 / 131
Fragen – Wiederholung
Reguläre Ausdrücke?
Was ist eine Grammatik?
Was ist eine Ableitung?
Was ist die von einer Grammatik erzeugte Sprache?
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
66 / 131
Beispiel
Beispiel 6.17
Grammatik Gab = ({S }, {a, b}, {R1 , R2 }, S ) mit
R1 = S → aSb
R2 = S → ε
Mögliche Ableitung:
S =⇒R1 aSb =⇒R1 aaSbb =⇒R1 aaaSbbb =⇒R2 aaabbb
Also:
a3 b3 ∈ L(G2 )
Lemma 6.18
Die Grammatik Gab erzeugt die Sprache
L(Gab ) = {an bn | n ∈ N0 }
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
67 / 131
Beispiel
Beweis
Dass Gab tatsächlich genau diese Sprache erzeugt, zeigen wir allgemein,
indem wir alle möglichen Ableitungen von Gab betrachten.
⊆ : zu zeigen: Jedes terminale Wort, das von Gab erzeugt wird, hat die Form
an b n .
Wir zeigen für alle w ∈ (V ∪ T )∗ : Falls S =⇒∗G w, dann gilt entweder
ab
w = an Sbn oder w = an bn für ein n ∈ N0 .
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
68 / 131
Beispiel
Beweis (Forts.)
Dazu verwenden wir eine Induktion über die Länge einer Ableitung von S
nach w.
Induktionsanfang: w = S = a0 Sb0
Induktionsschritt: Es gelte S =⇒∗G w =⇒Gab w 0 , und für w gelte nach der
ab
Induktionsvoraussetzung bereits w = an bn oder w = an Sbn . Außerdem sei
w =⇒Gab w 0 eine Ableitung in einem Schritt. Nun ist zu zeigen: w 0 = am bm
oder w 0 = am Sbm für irgendein m.
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
69 / 131
Beispiel
Beweis (Forts.)
Fall 1: w = an bn . Dann konnte keine Regel angewandt werden, da w schon
terminal ist, also tritt dieser Fall nie auf.
Fall 2: w = an Sbn . Dann wurde von w nach w 0 entweder Regel R1 oder R2
angewandt.
Falls R1 angewandt wurde, dann gilt w = an Sbn =⇒R1 an aSbbn
= an+1 Sbn+1 = w 0 .
Falls R2 angewandt wurde, dann gilt
w = an Sbn =⇒R2 an εbn = w 0 . Dies Wort ist terminal und hat die
geforderte Form an bn .
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
70 / 131
Beispiel
Beweis (Forts.)
⊇ : zu zeigen: Für alle n kann an bn von Gab erzeugt werden: S =⇒∗G an bn
ab
∀n ∈ N0 .
Um an bn zu erzeugen, wende man auf S n-mal die Regel R1 und dann
einmal die Regel R2 an.
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
71 / 131
Beispiel: Dycksprache
Definition 6.19 (Dycksprache)
Gegeben:
– k ∈N
– Σk := {x1 , x1 , x2 . . . , xk , xk }
ein Alphabet mit 2k Symbolen
Die Dycksprache Dk ist die kleinste Menge die folgende Bedingungen erfüllt:
1
ε ∈ Dk ,
2
Falls w ∈ Dk , so auch xi wxi .
3
Falls u , v ∈ Dk , so auch uv .
Interpretiert man die xi als öffnende, die xi als zugehörige schließende
Klammern, so kann man die Dycksprache als die Menge aller korrekten
Klammerausdrücke sehen.
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
72 / 131
Beispiel: Dycksprache
Walther von Dyck
b 1856, d 1934
Mathematiker
Hochschulpolitiker
Erster Rektor der TU München
Einer der Gründungsväter des Deutschen
Museums
[Foto: Deutsches Museum]
Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik
SS 2014
73 / 131
Teil II
Terminologie
6
Sprache, Grammatik
7
Warum Sprachen?
8
Die Chomsky-Hierarchie
9
Probleme über Sprachen
10
Endlich, unendlich und dann?
Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen?
SS 2014
74 / 131
Darstellung von Problemen
Fakt
So ziemlich alle Probleme können als Probleme über Sprachen formuliert
werden.
Beispiel 7.1 (Primzahlen)
Alphabet Σnum := {|}
Sprache Lprimes := {|| . . . | | p prim}
| {z }
p mal
Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen?
SS 2014
75 / 131
Darstellung von Problemen
Eingabealphabet
Σ = {0, 1, . . . , n − 1}
erlaubt Darstellung einer Ganzzahl zur Basis n
Beispiel 7.2
5 binär: 101
5 unär: |||||
(oder auch 11111)
Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen?
SS 2014
76 / 131
Darstellung von Problemen
Speicheraufwand
n-äre Darstellung (n > 1) einer Zahl k führt zu einer Speicherersparnis:
logn k
(n-är)
statt
k
(unär)
Nur der Schritt von unär auf binär ist wesentlich, denn
logn k =
1
log2 n
· log2 k = c · log2 k
(von binär auf n-är nur lineare Einsparung)
Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen?
SS 2014
77 / 131
Darstellung des Erfüllbarkeitsproblems SAT
Problem SAT
Gegeben: Eine aussagenlogische Formel w
Frage: Gibt es eine Belegung der booleschen Variablen in w,
so dass w zu true auswertet?
Signatur für aussagenlogische Formeln
Signatur: Σsat := {∧, ∨, ¬, (, ), x , 0, 1}
Dabei Darstellung von boolscher Variablen xi als x gefolgt von i binär kodiert.
Dadurch Formel der Länge n um (unerheblichen) Faktor log n länger.
Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen?
SS 2014
78 / 131
Darstellung des Erfüllbarkeitsproblems SAT
Definition 7.3 (Satisfiability)
Sprache
Lsat := {w ∈ Σ∗sat :
w ist eine aussagenlogische Formel,
und es gibt eine Belegung für die xi ,
so dass die Formel w zu true auswertet }
Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen?
SS 2014
79 / 131
Darstellung des Erreichbarkeitsproblems in Graphen
Erreichbarkeitsproblem
Gegeben: Ein Graph mit Ecken v1 bis vn
Frage: Gibt es einen Weg von Ecke v1 zu Ecke vn ?
Signatur für Graphen
Signatur: Σgraph := {v , e, 0, 1, (, ), #}
Darstellung von
Ecke vi als v gefolgt i binär kodiert
Kante ei ,j als e(string 1 #string 2 ), wobei
– string 1 die binäre Darstellung von i,
– string 2 die binäre Darstellung von j
Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen?
SS 2014
80 / 131
Darstellung des Erreichbarkeitsproblems in Graphen
Definition 7.4 (Erreichbarkeitsproblem)
Sprache
Lreach := {w ∈ Σ∗graph :
es gibt einen Weg in w
von der ersten Ecke v1
zur letzten Ecke vn }
Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen?
SS 2014
81 / 131
Wiederholung
Fragen
Was ist eine formale Sprache?
Regeln einer Grammatik?
Was ist die von einer Grammatik erzeugte formale Sprache?
Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen?
SS 2014
82 / 131
Teil II
Terminologie
6
Sprache, Grammatik
7
Warum Sprachen?
8
Die Chomsky-Hierarchie
9
Probleme über Sprachen
10
Endlich, unendlich und dann?
Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie
SS 2014
83 / 131
Die Chomsky-Hierarchie
Noam Chomsky
b 1928
Professor für Linguistik und Philosophie am MIT
Bedeutender Linguist
Bedeutender Beitrag zur Informatik:
Erste Beschreibung der Chomsky-Hierarchie
(1956)
Bedeutender linker Intellektueller und
Globalisierungskritiker
Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie
SS 2014
84 / 131
Die Chomsky-Hierarchie
Was muss eine Grammatik erfüllen?
Sie darf nur endlich viele Regeln haben
Jede Regelprämisse muss mindestens eine Variable enthalten
Das Wort kann im Lauf der Ableitung beliebig wachsen und wieder
schrumpfen.
(Weitere) Beschränkung der Form, die Regeln haben dürfen, führt zu
– Grammatiktypen und damit auch zu
– Sprachtypen
von verschiedenen Schwierigkeitsgraden.
Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie
SS 2014
85 / 131
Die Chomsky-Hierarchie
Definition 8.1 (Rechtlineare Grammatik)
Eine Grammatik G = (V , T , R , S ) heißt rechtslinear gdw
∀(P → Q ) ∈ R P ∈ V und Q ∈ T ∗ ∪ T + V
Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie
SS 2014
86 / 131
Die Chomsky-Hierarchie
Definition 8.2 (Rechtlineare Grammatik)
Eine Grammatik G = (V , T , R , S ) heißt rechtslinear gdw
∀(P → Q ) ∈ R P ∈ V und Q ∈ T ∗ ∪ T + V
Das heißt, bei jeder Regelanwendung:
Links eine einzelne Variable
Rechts höchstens eine Variable
Wenn rechts eine Variable steht, steht sie ganz rechts im Wort.
Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie
SS 2014
87 / 131
Die Chomsky-Hierarchie
Definition 8.3 (Kontextfreie Grammatik)
Eine Grammatik G = (V , T , R , S ) heißt kontextfrei gdw
∀(P → Q ) ∈ R P ∈ V und Q ∈ (V ∪ T )∗
Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie
SS 2014
88 / 131
Die Chomsky-Hierarchie
Definition 8.4 (Kontextfreie Grammatik)
Eine Grammatik G = (V , T , R , S ) heißt kontextfrei gdw
∀(P → Q ) ∈ R P ∈ V und Q ∈ (V ∪ T )∗
Das heißt, bei jeder Regelanwendung:
Links eine einzelne Variable
Die Prämisse macht keine Aussage, was der Kontext dieser Variablen ist
(„kontextfrei“)
Rechts steht etwas beliebiges
Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie
SS 2014
89 / 131
Definition 8.5 (Kontextsensitive Grammatik)
Eine Grammatik G = (V , T , R , S ) heißt kontextsensitiv gdw
∀(P → Q ) ∈ R:
1
∃u , v , α ∈ (V ∪ T )∗ ∃A ∈ V P = uAv und Q = u αv mit |α| ≥ 1 , oder
die Regel hat die Form S → ε
2
S nicht in Q
Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie
SS 2014
90 / 131
Die Chomsky-Hierarchie
Definition 8.6 (Kontextsensitive Grammatik)
Eine Grammatik G = (V , T , R , S ) heißt kontextsensitiv gdw
∀(P → Q ) ∈ R:
1
∃u , v , α ∈ (V ∪ T )∗ ∃A ∈ V P = uAv und Q = u αv mit |α| ≥ 1 , oder
die Regel hat die Form S → ε
2
S nicht in Q
Das heißt, bei jeder Regelanwendung:
Eine Variable A wird in einen String α mit |α| ≥ 1 überführt
Die Ersetzung von A durch α findet nur statt, wenn der in der Regel
geforderte Kontext (u und v ), vorhanden ist
Das Wort wird nicht kürzer, außer bei ε ∈ L
Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie
SS 2014
90 / 131
Definition 8.7 (Beschränkte Grammatik)
Eine Grammatik G = (V , T , R , S ) heißt beschränkt gdw
∀(P → Q ) ∈ R:
1
|P | ≤ |Q |, oder
die Regel hat die Form S → ε
2
S nicht in Q
Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie
SS 2014
91 / 131
Die Chomsky-Hierarchie
Definition 8.8 (Beschränkte Grammatik)
Eine Grammatik G = (V , T , R , S ) heißt beschränkt gdw
∀(P → Q ) ∈ R:
1
|P | ≤ |Q |, oder
die Regel hat die Form S → ε
2
S nicht in Q
Das heißt, bei jeder Regelanwendung:
Die Conclusio ist mindestens so lang wie die Prämisse,
außer bei ε ∈ L.
Das Wort wird nicht kürzer, außer bei ε ∈ L
Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie
SS 2014
92 / 131
Die Chomsky-Hierarchie
Aufbauend auf den Grammatikarten kann man Sprachklassen definieren
Definition 8.9 (Sprachklassen)
Klasse
definiert als
Sprache heißt
L3 , REG
L2 , CFL
L1 , CSL
L1 , CSL
L0 , r.e.
L
{L(G) | G ist rechtslinear}
{L(G) | G ist kontextfrei}
{L(G) | G ist kontextsensitiv}
{L(G) | G ist beschränkt}
{L(G) | G beliebig}
{L | L ⊆ Σ∗ }
Typ 3, regulär
Typ 2, kontextfrei
Typ 1, kontextsensitiv
Typ 1, beschränkt
Typ 0, aufzählbar
beliebige Sprache
Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie
SS 2014
93 / 131
Die Chomsky-Hierarchie
Grammatiken können kompliziert sein!
Beispiel 8.10 (Grammatik für an bn c n )
Grammatik Gabc = ({S , X1 , X2 }, {a, b, c }, {R1 , . . . R5 }, S ) mit
R1 =
R2 =
R3 =
R4 =
R5 =
S
X1 b
X1 c
bX2
aX2
→
→
→
→
→
abc | aX1 bc
bX1
X2 bcc
X2 b
aa | aaX1
Ist diese Grammatik kontextsensitiv?
Ist sie beschränkt?
Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie
SS 2014
94 / 131
Teil II
Terminologie
6
Sprache, Grammatik
7
Warum Sprachen?
8
Die Chomsky-Hierarchie
9
Probleme über Sprachen
10
Endlich, unendlich und dann?
Furbach – Grundlagen d. Theoretischen Informatik: Probleme über Sprachen
SS 2014
95 / 131
Probleme über Sprachen
Interessante Probleme (informell)
Ist ein gegebenes Wort in einer Sprache (definiert durch eine Grammatik)
enthalten?
Erzeugen zwei gegebene Grammatiken dieselbe Sprache?
Mit welchen Algorithmen können diese Probleme gelöst werden?
Furbach – Grundlagen d. Theoretischen Informatik: Probleme über Sprachen
SS 2014
96 / 131
Probleme und Algorithmen im allgemeinen
Definition 9.1 (Problem, Algorithmus)
Ein Problem P ist die Frage, ob eine bestimmte Eigenschaft auf gegebene
Objekte zutrifft.
Dabei ist eine bekannte, abzählbaren Grundmenge solcher Objekte gegeben.
Für jedes Objekt o gilt: die Eigenschaft trifft auf o zu oder nicht.
Definition 9.2 (Algorithmus)
Ein Algorithmus für ein Problem P ist eine Vorschrift (ein Programm), die zu
beliebigem Objekt o berechnet, ob die Eigenschaft für o zutrifft oder nicht.
Furbach – Grundlagen d. Theoretischen Informatik: Probleme über Sprachen
SS 2014
97 / 131
Probleme und Algorithmen im allgemeinen
Beispiel 9.3 (Einige Probleme)
Für n ∈ N:
Ist n eine Primzahl?
Für ein Wort w ∈ Σ∗ und
ein Element G aus der Menge aller Grammatiken über Σ:
Gilt w ∈ L(G)?
Für ein Element G aus der Menge aller Grammatiken:
Ist L(G) leer (endlich, unendlich)?
Für (a, b, c ) ∈ N3 :
Hat an + bn = c n eine Lösung in den natürlichen Zahlen?
Für ein Programm p aus der Menge aller Java-Programme:
Terminiert p?
Furbach – Grundlagen d. Theoretischen Informatik: Probleme über Sprachen
SS 2014
98 / 131
Teil II
Terminologie
6
Sprache, Grammatik
7
Warum Sprachen?
8
Die Chomsky-Hierarchie
9
Probleme über Sprachen
10
Endlich, unendlich und dann?
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
99 / 131
Abzählbarkeit
Definition 10.1 (Abzählbarkeit)
Eine Menge M heißt abzählbar, wenn
es eine surjektive Funktion
f : N0 → M
gibt,
oder M leer ist.
Intuition
Eine Menge ist abzählbar, wenn sie höchstens so mächtig wie N0 ist.
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
100 / 131
Abzählbarkeit
Lemma 10.2
Eine Menge M ist abzählbar, wenn es eine injektive Funktion
f : M → N0
gibt.
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
101 / 131
Abzählbarkeit
Beispiel 10.3
Abzählbar sind:
N0
Q
alle endlichen Mengen
die Vereinigung zweier abzählbarer Mengen
die Vereiningung abzählbar vieler abzählbarer Mengen
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
102 / 131
Hilberts Hotel
David Hilbert
b 1862, d 1943
Einer der bedeutensten und einflußreichsten
Mathematiker aller Zeiten
Professor in Königsberg und Göttingen
Wichtige Beiträge zu
– Logik
– Funktionalanalysis
– Zahlentheorie
– Mathematische Grundlagen der Physik
– uvm.
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
103 / 131
Diagonalisierungsargument für Überabzählbarkeit
Theorem 10.4
Die Menge R der rellen Zahlen ist überabzählbar.
Beweis.
Wir zeigen, dass schon das Intervall [0, 1] überabzählbar ist.
Annahme: Es gibt eine Aufzählung, also eine surjektive Funktion
f : N0 → [0, 1]
Dann sei
f (i ) = 0, d0i d1i d2i . . .
die Dezimaldarstellung der i-ten reellen Zahl.
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
104 / 131
Diagonalisierungsargument für Überabzählbarkeit
Beweis.
Fortsetzung:
Wir definieren eine neue Zahl d = 0, d 0 d 1 d 2 . . . durch
dn =
dnn + 1
0
falls dnn < 9
sonst
d unterscheidet sich in der n-ten Stelle von dn .
Also d 6= dn für alle n ∈ N0
Also kommt d in der Aufzählung nicht vor. Widerspruch!
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
105 / 131
Wieviele gibt es?
Wieviele
– Grammatiken
– Sprachen
– Algorithmen
gibt es überhaupt?
Mögliche Antworten
Endlich viele
Unendlich viele
Abzählbar viele
Überabzählbar viele
Nicht klar für Algorithmen, da dieser Begriff nicht genau definiert wurde
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
106 / 131
Wieviele Wörter, Grammatiken gibt es?
Lemma 10.5
Gegeben: Signatur Σ, endlich oder abzählbar unendlich
Dann ist Σ∗ abzählbar unendlich.
Beweis.
Σ ist abzählbar, also ist Σi abzählbar, i ∈ N.
Σ∗ ist die Vereinigung der abzählbar vielen abzählbaren Mengen Σi .
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
107 / 131
Wieviele Wörter, Grammatiken gibt es?
Lemma 10.6
Gegeben: Signatur Σ, endlich oder abzählbar unendlich
Dann ist die Menge aller Grammatiken über Σ abzählbar unendlich
Beweis.
Grammatiken sind endlich und also als Wörter über einer geeigneten
erweiterten Signatur
Σ ∪ V ∪ {→, . . .}
darstellbar.
Die Menge der Wörter über dieser erweiterten Signatur ist abzählbar
(Lemma 10.5).
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
108 / 131
Wieviele Algorithmen gibt es?
Lemma 10.7
Es gibt (nur) abzählbar viele Algorithmen.
Beweis.
Algorithmen müssen per Definition eine endliche Beschreibung haben.
Sie sind also als Wörter über einer Signatur Σ darstellbar
(für jedes abzählbare Σ).
Also sind sie abzählbar (Lemma 10.5).
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
109 / 131
Wieviele Funktionen f : N0 → N0 gibt es?
Lemma 10.8
Es gibt überabzählbar viele Funktionen f : N0 → N0 .
Beweis.
Angenommen, es existiere eine Abzählung
f1 , f2 , . . . fn , . . .
Dann sei
C : N0 → N0
mit
C (n ) =
1
0
falls fn (n) = 0;
sonst
C (i ) 6= fi (i )
Also: C ist von allen fi verschieden.
Widerspruch!
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
110 / 131
Wieviele Funktionen f : N0 → N0 gibt es?
Lemma 10.9
Es gibt überabzählbar viele Funktionen f : N0 → {0, 1}.
Beweis.
Analog.
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
111 / 131
Wieviele Sprachen gibt es?
Lemma 10.10
Gegeben eine Signatur Σ (endlich oder unendlich).
Die Menge der Sprachen über Σ ist überabzählbar.
Beweis.
Sei eine beliebige Abzählung aller Wörter über Σ gegeben:
w1 , w2 , . . .
Dann kann man die Sprachen L über Σ mit den Funktionen f : N0 → {0, 1}
identifizieren, vermittels
f (i ) = 1 gdw wi ∈ L
Von diesen gibt es überabzählbar viele.
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
112 / 131
Korollar
Korollar 10.11
Nicht jede Sprache kann durch eine Grammatik dargestellt werden.
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
113 / 131
Zusammenfassung
Gegeben eine Signatur Σ
Abzählbar
N
Menge aller Wörter
Menge aller Grammatiken
Menge aller Algorithmen
Überabzählbar
Die Menge aller Teilmengen von N
Die Menge aller reellen Zahlen
Die Menge aller Funktionen f : N0 → N0
bzw.
f : N 0 → { 0, 1}
Die Menge aller Sprachen
Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann?
SS 2014
114 / 131
Herunterladen