Kapitel 0: Grundbegriffe 0. Grundbegriffe 1. Endliche Automaten 2 ...
Kapitel 0: Grundbegriffe 0. Grundbegriffe 1. Endliche Automaten 2 ... Kapitel 0: Grundbegriffe 0. Grundbegriffe 1. Endliche Automaten 2 ...
Kapitel 0: Grundbegriffe Gliederung 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechenbarkeitstheorie 4. Komplexitätstheorie 0/2, Folie 1 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
- Seite 2 und 3: Kapitel 0: Grundbegriffe Alphabete
- Seite 4 und 5: Kapitel 0: Grundbegriffe Alphabete
- Seite 6 und 7: Kapitel 0: Grundbegriffe Alphabete
- Seite 8 und 9: Kapitel 0: Grundbegriffe Alphabete
- Seite 10 und 11: Kapitel 0: Grundbegriffe Alphabete
- Seite 12 und 13: Kapitel 0: Grundbegriffe Alphabete
- Seite 14 und 15: Kapitel 0: Grundbegriffe Alphabete
- Seite 16 und 17: Kapitel 0: Grundbegriffe Mengen / R
- Seite 18 und 19: Kapitel 0: Grundbegriffe Mengen / R
- Seite 20 und 21: Kapitel 0: Grundbegriffe Mengen / R
- Seite 22 und 23: Kapitel 0: Grundbegriffe Mengen / R
- Seite 24 und 25: Kapitel 0: Grundbegriffe Mengen / R
- Seite 26 und 27: Kapitel 0: Grundbegriffe Mengen / R
- Seite 28 und 29: Kapitel 0: Grundbegriffe Mengen / R
- Seite 30 und 31: Kapitel 0: Grundbegriffe Mengen / R
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Gliederung<br />
<strong>0.</strong> <strong>Grundbegriffe</strong><br />
<strong>1.</strong> <strong>Endliche</strong> <strong>Automaten</strong><br />
2. Formale Sprachen<br />
3. Berechenbarkeitstheorie<br />
4. Komplexitätstheorie<br />
0/2, Folie 1 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Alphabete / Zeichenketten / Sprachen<br />
u Alphabet<br />
• Ein Alphabet Σ ist eine endliche Menge von Symbolen (/* Zeichen */).<br />
Σ = { a,b,c,...,z }; Σ 1 = { A,B,C,...,Z }; Σ 2 = { 0,1,...,9 }<br />
u Zeichenketten und ihre Länge<br />
• Eine Zeichenkette ist eine endliche Folge von Symbolen.<br />
anton (/* bzgl. Σ */), 123 (/* bzgl. Σ 2 */), ACHTUNG (/* bzgl. Σ 1 */)<br />
besondere Zeichenkette: ε (/* die leere Zeichenkette */)<br />
• Die Länge einer Zeichenkette u ist die Anzahl der Symbole von u.<br />
| anton | = 5<br />
| 123 | = 3<br />
| ε | = 0<br />
0/2, Folie 2 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Alphabete / Zeichenketten / Sprachen<br />
u Verkettung von zwei Zeichenketten<br />
• Das Ergebnis der Verkettung von zwei Zeichenketten u und v ist die<br />
Zeichenkette, die entsteht, wenn v an u angehängt wird.<br />
u Gebräuchliche Abkürzungen<br />
u = abc ; v = DEF ⇒ u°v = abc°DEF = abcDEF<br />
u 1 = aa ; v 1 = bb ⇒ u 1 °v 1 = aa°bb = aabb<br />
u 2 = aba; v 2 = ε ⇒ u 2 °v 2 = aba°ε = aba<br />
⇒ v 2 °u 2 = ε°aba = aba<br />
a 3 ⇒ aaa<br />
a 3 °b 3 bzw. a 3 b 3 ⇒ aaabbb<br />
a 2 °b 1 °c 2 bzw. a 2 b 1 c 2 ⇒ aabcc<br />
0/2, Folie 3 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Alphabete / Zeichenketten / Sprachen<br />
u Menge aller Zeichenketten (/* informell */)<br />
• Σ* ist die Menge aller Zeichenketten über dem Alphabet Σ.<br />
• es sei Σ = { a, b }; dann ist ...<br />
Σ* = { ε, a,b, aa,ab,ba,bb,<br />
aaa,...,bbb, aaaa,....,bbbb,<br />
... }<br />
... die Zeichenketten in Σ* sind „längen-lexikographisch“ aufgezählt<br />
... da in Σ* unendlich viele Zeichenketten vorkommen, kann man sie<br />
nicht „lexikographisch“ (/* wie etwa in einem Lexikon */) aufzählen<br />
(/* warum das wichtig ist, sehen Sie später */)<br />
0/2, Folie 4 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Alphabete / Zeichenketten / Sprachen<br />
u Menge aller Zeichenketten (/* formal; induktive Definition */)<br />
• es sei Σ das zugrunde liegende Alphabet<br />
• wir definieren für alle n ∈ N die Menge Σ n wie folgt:<br />
Induktionsanfang: Σ 0 = { ε }<br />
Induktionsschritt: Σ n+1 = { x°w | x ∈ Σ und w ∈ Σ n }<br />
(/* = { w°x | w ∈ Σ n und x ∈ Σ } */)<br />
• ... und verwenden Σ* als Abkürzung für:<br />
Σ* = ∪ Σ i (/* = Σ 0 ∪ Σ 1 ∪ Σ 2 ∪ ... */)<br />
i ∈ N<br />
... Σ* enthält alle Zeichenketten, die aufgrund von<br />
endlich vielen Anwendung des Induktionsschrittes<br />
aus den Zeichenkette in Σ 0 gebildet werden können<br />
0/2, Folie 5 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Alphabete / Zeichenketten / Sprachen<br />
u Präfix / Suffix (/* informell */)<br />
• Jedes Anfangsstück einer Zeichenkette u heißt Präfix von u.<br />
u = anton ⇒ ε, a, an, ant, anto, anton<br />
u 1 = 123 ⇒ ε, 1, 12, 123<br />
• Jedes Endstück einer Zeichenkette u heißt Suffix von u.<br />
u = anton ⇒ ε, n, on, ton, nton, anton<br />
u 1 = 123 ⇒ ε, 3, 23, 123<br />
0/2, Folie 6 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Alphabete / Zeichenketten / Sprachen<br />
u Präfix / Suffix (/* formal */)<br />
• es sei Σ das zugrunde liegende Alphabet<br />
• es sei u ∈ Σ*<br />
Eine Zeichenkette p ∈ Σ* ist ein Präfix von u, falls es eine Zeichenkette<br />
w ∈ Σ* mit p°w = u gibt.<br />
Eine Zeichenkette s ∈ Σ* ist ein Suffix von u, falls es eine Zeichenkette<br />
w ∈ Σ* mit w°s = u gibt.<br />
0/2, Folie 7 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Alphabete / Zeichenketten / Sprachen<br />
u Sprachen / Wörter<br />
• Jede Menge L ⊆ Σ* ist eine (/* formale */) Sprache.<br />
• Die Elemente einer Sprache nennt man Wörter.<br />
... mit solchen Sprachen werden wir uns in der ganzen Vorlesung intensiv<br />
beschäftigen<br />
... uns interessieren formale Sprachen, weil sie für Informatiker wichtig<br />
sind und „sehr einfache“ und „recht anschauliche“ Objekte sind (/* ... und<br />
man an allen Aspekten, die aus Sicht der Theoretischen Informatik<br />
relevant sind, vorbeikommt, wenn man sich mit ihnen beschäftigt */)<br />
... wir kümmern uns um unterschiedliche Möglichkeiten, formale Sprachen<br />
zu beschreiben, und diskutieren, ob und wie effizient man bestimmte<br />
(Klassen) von formalen Sprachen algorithmisch in den Griff bekommen<br />
kann<br />
0/2, Folie 8 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Alphabete / Zeichenketten / Sprachen<br />
u Aspekt „formale Sprachen sind für Informatiker wichtig“ (Teil 1)<br />
• die Menge aller „Quelltexte“ für Programme in einer von ihnen gewählten<br />
Programmiersprache, die sich mit einem Compiler für diese<br />
Programmsprache übersetzen lassen, bilden eine formale Sprache<br />
• die Menge aller „Quelltexte“ für Dokumente, die von einem der üblichen<br />
Internet-Browser dargestellt werden können, bilden eine formale Sprache<br />
• alle „Quelltexte“ für Dokumente, die sie mit einem herkömmlichen<br />
Textverarbeitungssystem verarbeiten können, bilden eine formale<br />
Sprache<br />
• ...<br />
0/2, Folie 9 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Alphabete / Zeichenketten / Sprachen<br />
u Aspekt „formale Sprachen algorithmisch in den Griff zu bekommen“<br />
• es sei L eine formale Sprache über einem Alphabet Σ<br />
• dann kann man der Sprache L die wie folgt definierte Funktion f L (.) von<br />
der Menge Σ* in die Menge { 0,1 } zuordnen, wobei für alle Zeichenketten<br />
w ∈ Σ* gilt:<br />
• f L (w) = 1, falls w ∈ L gilt<br />
• f L (w) = 0, falls w ∉ L gilt<br />
... die L eindeutig zugeordnete Funktion f L (.) nennt man die<br />
charakteristische Funktion der Sprache L<br />
... die Sprache L bekommt man algorithmisch in den Griff, wenn<br />
man ein Programm angeben kann, das die charakteristische<br />
Funktion der Sprache L korrekt berechnet<br />
0/2, Folie 10 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Alphabete / Zeichenketten / Sprachen<br />
u Aspekt „formale Sprachen sind für Informatiker wichtig“ (Teil 2)<br />
• es sei irgendein algorithmisches Problem gegeben (und mit solchen<br />
beschäftigen wir uns ja als Informatiker)<br />
• dann gilt „grob“ gesagt folgendes:<br />
• man kann eine geeignete formale Sprache L definieren, so das<br />
die folgenden zwei Aufgabenstellungen äquivalent sind:<br />
• ein (effizientes) Programm anzugeben, mit dem man die<br />
charakteristische Funktion der Sprache L berechnen kann<br />
• einen (effizienten) Lösungsalgorithmus für das gegebene<br />
algorithmische Problem anzugeben<br />
0/2, Folie 11 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Alphabete / Zeichenketten / Sprachen<br />
u Beispiel (/* Problem der Existenz von Cliquen der Größe k */)<br />
... zur Erinnerung: es geht um folgendes algorithmische Problem<br />
zulässige Eingaben: • ein ungerichteter Graph G = (V,E)<br />
• eine Zahl k ∈ N<br />
zulässige Ausgaben: • die Zahlen 0 oder 1<br />
• die Zahl 1 soll ausgegeben werden, wenn<br />
es im Graphen G (mindestens) eine Clique<br />
der Größe größer gleich k gibt<br />
• die Zahl 0 soll ausgegeben werden, wenn<br />
es im Graphen G keine Clique der Größe<br />
größer gleich k gibt<br />
0/2, Folie 12 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Alphabete / Zeichenketten / Sprachen<br />
u Beispiel (/* Problem der Existenz von Cliquen der Größe k */)<br />
• Beschreibung von ungerichtete Graphen<br />
a<br />
b<br />
c<br />
w = #1#2#3#4#1-2#1-3#2-3#2-4#3-4#<br />
d<br />
... jedem ungerichteten Graph kann in analoger Weise eineindeutig<br />
eine Zeichenkette über dem Alphabet Σ = { #,0,1,...,9,- } zugeordnet<br />
werden<br />
0/2, Folie 13 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Alphabete / Zeichenketten / Sprachen<br />
u Beispiel (/* Problem der Existenz einer Clique der Größe k */)<br />
• es sei die Sprache L G ⊆ Σ* so gewählt, dass die Sprache L G genau<br />
diejenigen Zeichenketten aus Σ* enthält, die einen ungerichteten<br />
Graphen beschreiben<br />
• zu jedem k = 1,2,... sei die Sprache L k ⊆ L G derart gewählt, dass die<br />
Sprache L k diejenigen Zeichenketten aus L G enthält, die einen<br />
ungerichteten Graphen beschreiben, in dem es mindestens eine<br />
Clique der Größe k gibt<br />
... offenbar kann man jedes Programm, das die charakteristische<br />
Funktion der Sprache L k berechnet, als Lösungsalgorithmus für<br />
das interessierende graphentheoretische Problem verwenden<br />
0/2, Folie 14 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Mengen<br />
• Eine Menge ist eine Zusammenfassung von Elementen.<br />
M = { n | n ∈ N und n mod 2 = 0 }<br />
M 1 = { v°111 | v ∈ Σ* }, wobei Σ = { 0,1 } gelte<br />
besondere Menge: ∅<br />
u Teilmenge / Obermenge<br />
• A ⊆ B, d.h. jedes Element von A ist auch ein Element von B<br />
• A ⊇ B, d.h jedes Element von B ist auch ein Element von A<br />
0/2, Folie 15 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Durchschnitt / Vereinigung / Differenz / Potenzmenge<br />
A ∩ B<br />
• A ∪ B = { x | x ∈ A oder x ∈ B }<br />
• A ∩ B = { x | x ∈ A und x ∈ B }<br />
• A \ B = { x | x ∈ A und x ∉ B }<br />
• 2 A = { M | M ⊆ A }<br />
A ∪ B<br />
A<br />
B<br />
A<br />
A<br />
B<br />
B<br />
A \ B<br />
u Einfache Zusammenhänge<br />
• A ⊆ (A ∪ B), B ⊆ (A ∪ B)<br />
• (A ∩ B) ⊆ A, (A ∩ B) ⊆ B<br />
• (A \ B) ⊆ A<br />
• ∅ ∈ 2 A , A ∈ 2 A<br />
0/2, Folie 16 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Mächtigkeit von Mengen<br />
• zu einer Menge A bezeichnen wir mit |A| die Anzahl der Elemente<br />
der Menge A (/* d.h. die Mächtigkeit von A */)<br />
• es gibt endliche und unendliche Mengen<br />
• falls A eine endliche Menge ist, so enthält die Potenzmenge 2 A der<br />
Menge A genau 2 |A| viele Elemente (/* d.h. |2 A | = 2 |A| */)<br />
... bei unendlichen Mengen muß man ein wenig aufpassen<br />
... es gibt unendliche Mengen unterschiedlicher Mächtigkeit<br />
0/2, Folie 17 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Vergleich der Mächtigkeit von Mengen<br />
• es seien A und B Mengen<br />
• es gilt |A| = |B|, falls es gibt eine eineindeutige Abbildung f(.) der<br />
Menge A auf die Menge B<br />
A<br />
7<br />
5<br />
3<br />
f(.)<br />
B<br />
a<br />
b<br />
c<br />
• eine Menge A heißt abzählbar unendlich gdw. |A| = |N| gilt<br />
... dann gibt es auch eine eineindeutige Abbildung f(.) der<br />
Menge A auf die Menge N der natürlichen Zahlen<br />
0/2, Folie 18 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Beispiel und Begriff Aufzählung<br />
• es seien Σ = { a } und A = Σ*<br />
• wir betrachten die folgende eineindeutige Abbildung f(.) von A auf N<br />
mit:<br />
• f(ε) = 0<br />
• f(v°a) = f(v) + 1 für alle v ∈ Σ*<br />
... also ist die Menge A abzählbar unendlich<br />
• es sei f -1 (.) die Umkehrabbildung zu f(.)<br />
• dann nennen wir die unendliche Folge f -1 (0), f -1 (1), f -1 (2), ... eine<br />
Aufzählung der Menge A<br />
... in unserem Beispiel ist das die Folge ε,a,aa,aaa, ...<br />
0/2, Folie 19 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Beispiele für abzählbar unendliche Mengen<br />
• die Menge aller natürlichen Zahlen<br />
• die Menge aller nichtnegativen rationalen Zahlen<br />
• die Menge aller Zeichenketten über irgendeinem endlichen Alphabet<br />
• jede unendliche formale Sprache über irgendeinem endlichen Alphabet<br />
• ...<br />
u Beispiele für unendliche Mengen, die nicht abzählbar unendlich sind<br />
• die Menge aller reellen Zahlen<br />
• die Potenzmenge der natürlichen Zahlen<br />
• die Menge aller formalen Sprachen über irgendeinem endlichen<br />
Alphabet<br />
• ...<br />
... unendliche Mengen, die nicht abzählbar unendlich sind,<br />
nennt man überabzählbar unendliche Mengen<br />
0/2, Folie 20 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Ein Beispiel für eine überabzählbar unendliche Menge (/* mit Beweis */)<br />
• es sei N die Menge der natürlichen Zahlen<br />
• es sei 2 N die Potenzmenge der Menge N<br />
... wir werden uns überlegen, daß die Menge 2 N nicht abzählbar<br />
unendlich ist, d.h. es gibt mehr Teilmengen der natürlichen Zahlen<br />
als es natürliche Zahlen gibt<br />
wichtige Vorüberlegung:<br />
• es sei M irgendeine Teilenge der natürlichen Zahlen N<br />
• dann kann man der Menge M eindeutig einen unendlichen 0/1-Vektor<br />
r = ( r 0 ,r 1 ,r 2 ,... ) zuordnen<br />
M = { 0,1,2 } ⇒ r = ( 1,1,1,0,0,0,... )<br />
M = { 0,2,4,... } ⇒ r = ( 1,0,1,0,1,0,... )<br />
0/2, Folie 21 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Ein Beispiel für eine überabzählbar unendliche Menge (/* mit Beweis */)<br />
Annahme: die Potenzmenge 2 N sei aufzählbar<br />
• dann gibt es eine eineindeutige Abbildung f(.) von der Potenzmenge 2 N<br />
in die Menge der natürlichen Zahlen N<br />
• also ist die unendliche Folge f -1 (0), f -1 (1), f -1 (2), ... eine Aufzählung der<br />
Potenzmenge 2 N<br />
• um uns Schreibarbeit zu sparen, nennen wir die Menge f -1 (0) einfach<br />
M 0 , die Menge f -1 (1) einfach M 1 , die Menge f -1 (1) einfach M 2 , ...<br />
... um unsere Annahme zum Widerspruch zu führen, genügt es eine<br />
Teilmenge M ⊆ N anzugeben, die in der Aufzählung fehlt, d.h. für alle<br />
i = 0,1,2, ... muss gelten: M M i<br />
0/2, Folie 22 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Ein Beispiel für eine überabzählbar unendliche Menge (/* mit Beweis */)<br />
• zu jeder Menge M i in der angeblich existierenden Aufzählung der<br />
Potenzmenge 2 N bezeichnen wir mir r i = ( r i,0 ,r i,1 ,r i,2 ,... ) den dieser<br />
Menge M i zugeordneten unendlichen 0/1-Vektor<br />
• der der „fehlenden“ Menge M zugeordnete unendliche 0/1-Vektor<br />
r = ( r 0 ,r 1 ,r 2 ,... ) wird wie folgt definiert:<br />
• für alle i = 0,1,2, ... gilt:<br />
• r i = 1, falls r i,i = 0 (/* d.h. i ∈ M, falls i ∉ M i */)<br />
• r i = 0, falls r i,i = 1 (/* d.h. i ∉ M, falls i ∈ M i */)<br />
0/2, Folie 23 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Ein Beispiel für eine überabzählbar unendliche Menge (/* mit Beweis */)<br />
Illustration:<br />
0 1 2 3 4 ...<br />
M 0<br />
0 0 0 1 0 ...<br />
M 1<br />
1 1 1 1 1 ...<br />
M 2<br />
1 0 0 0 1 ...<br />
M 3<br />
0 0 0 0 1 ...<br />
M 4<br />
1 1 0 1 1 ...<br />
... ...<br />
0 1 2 3 4 ...<br />
M 1 0 1 1 0 ...<br />
0/2, Folie 24 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Ein Beispiel für eine überabzählbar unendliche Menge (/* mit Beweis */)<br />
• offenbar gilt per Definition der Menge M sofort M ⊆ N sowie:<br />
• M M 0 (/* da r 0 r 0,0 */)<br />
• M M 1 (/* da r 1 r 1,1 */)<br />
• M M 2 (/* da r 2 r 1,2 */)<br />
• ...<br />
• also fehlt die Menge M ⊆ N in der gemäß unserer Annahme gewählten<br />
Aufzählung M 0 ,M 1 ,M 2 , ... der Menge 2 N<br />
... die Idee zur Definition der „fehlenden“ Menge M ⊆ N nennt man<br />
Cantorsches Diagonalverfahren<br />
... mit derselben Idee kann man auch zeigen, dass die Menge aller<br />
formalen Sprachen über einem endlichen Alphabet nicht abzählbar<br />
unendlich ist (/* das ist für uns als Informatiker interessanter */)<br />
0/2, Folie 25 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Unterschiede zwischen abzählbar und überabzählbar unendlichen Mengen<br />
• es sei M eine abzählbar unendliche Menge<br />
Dann gilt: Jede unendliche Teilmenge M‘ von M ist abzählbar unendlich.<br />
• es sei M eine überabzählbar unendliche Menge<br />
Dann gilt: Jede unendliche Teilmenge M‘ von M ist entweder überabzählbar<br />
unendlich oder abzählbar unendlich.<br />
0/2, Folie 26 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u binäre Relationen<br />
• Eine binäre Relation R über A und B ist eine Menge von geordneten<br />
Paaren, d.h. R ⊆ { (a,b) | a ∈ A und b ∈ B }.<br />
• aRb ist eine andere Schreibweise für (a,b) ∈ R<br />
• falls A = B gilt, so nennt man R eine Relation auf A<br />
u Beispiel<br />
... jeder Relation R auf A entspricht ein gerichteter Graph mit der<br />
Knotenmenge A<br />
A = { 0,1,2,3,4,5 }<br />
R = { (0,1),(0,3),(1,2),(1,3),(1,4),(1,5),<br />
(2,4),(2,5),(3,4),(4,5) }<br />
0 1 2<br />
3<br />
4 5<br />
0/2, Folie 27 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Reflexivität / Symmetrie / Transitivität<br />
• Eine Relation R auf A ist reflexiv gdw. für alle a ∈ A gilt:<br />
(a,a) ∈ R.<br />
• Eine Relation R auf A ist symmetrisch, falls für alle a,b ∈ A gilt:<br />
Wenn (a,b) ∈ R, so (b,a) ∈ R.<br />
• Eine Relation R auf A ist transitiv gdw. für alle a,b,c ∈ A gilt:<br />
Wenn (a,b) ∈ R und (b,c) ∈ R, so auch (a,c) ∈ R<br />
0/2, Folie 28 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Transitive Hülle<br />
• Die transitive Hülle Trans(R) einer Relation R über A ist die kleinste<br />
Relation mit folgenden Eigenschaften:<br />
• wenn (a,b) ∈ R, so (a,b) ∈ Trans(R)<br />
• wenn (a,b) ∈ Trans(R) und (b,c) ∈ Trans(R), so (a,c) ∈ Trans(R)<br />
... statt Trans(R) ist auch die Bezeichnung R + üblich<br />
u Reflexive Hülle<br />
• Die reflexive Hülle Refl(R) einer Relation R über A ist die wie folgt<br />
definierte Relation: Refl(R) = R ∪ { (a,a) | a ∈ A }.<br />
0/2, Folie 29 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Ein einfacher Zusammenhang<br />
• es sei R eine Relation R über A<br />
Dann gilt: Refl(Trans(R)) = Trans(Refl(R)).<br />
... es ist egal, ob man erst die transitive und dann die reflexive Hülle<br />
oder erst die reflexive und dann die transitive Hülle bildet<br />
u Reflexiv-transitive Hülle<br />
• Die reflexiv-transitive Hülle R* einer Relation R über A ist die wie folgt<br />
definierte Relation: R* = Refl(Trans(R)).<br />
... per Definition gilt: R* = R + ∪ { (a,a) | a ∈ A }<br />
0/2, Folie 30 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
<strong>Kapitel</strong> 0: <strong>Grundbegriffe</strong><br />
Mengen / Relationen<br />
u Beispiel<br />
A = { 0,1,2,3,4,5 }<br />
R = { (0,1),(0,3),(1,2),(1,3),(1,4),(1,5),<br />
(2,4),(2,5),(3,4),(4,5) }<br />
0 1 2<br />
3<br />
4 5<br />
R + = { (0,1),(0,3),(0,2),(0,4),(0,5),<br />
(1,2), (1,3),(1,4),(1,5),(2,4),<br />
(2,5),(3,4),(3,5),(4,5) }<br />
0 1 2<br />
3<br />
4 5<br />
0/2, Folie 31 © 2013 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik