01.03.2014 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!