einf ¨uhrung in die theoretische informatik 1. alphabete, w ¨orter

Werbung
EINFÜHRUNG IN DIE THEORETISCHE
INFORMATIK
Prof. Dr. Klaus Ambos-Spies
Sommersemester 2016
1. ALPHABETE, WÖRTER, SPRACHEN
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
1 / 26
Vorbemerkung: Daten, Wörter, Zahlen (1)
Daten sind endliche Darstellungen mathematischer Objekte.
Im Rahmen der Vorlesung:
DATEN = WÖRTER
Und damit:
(ENTSCHEIDUNGS)PROBLEME =
ˆ WORTMENGEN
= SPRACHEN
und
FUNKTIONALE (BERECHNUNGS)PROBLEME =
ˆ WORTFUNKTIONEN
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
2 / 26
Vorbemerkung: Daten, Wörter, Zahlen (2)
Mit Wörtern lassen sich beliebige Daten kodieren (vgl. z.B. Zahldarstellungen).
Umgekehrt lassen sich - z.B. durch geeignetes Durchnummerieren - Wörter
mit (natürlichen) Zahlen identifizieren.
Wir können daher Wörter auch durch Zahlen ersetzen und erhalten:
DATEN =
ˆ WÖRTER =
ˆ ZAHLEN
Natürliche Zahlen: N = {0, 1, 2, . . . }
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
3 / 26
Alphabete, Wörter, Sprachen
Im Folgenden gehen wir auf Alphabete, Wörter und Sprachen näher
ein und führen einige grundlegende Begriffe und Notationen ein.
ALPHABET
= eine endliche, geordnete Menge von
Buchstaben (Symbolen)
WORT (STRING) = eine endliche Folge von Buchstaben
(über festem Alphabet)
SPRACHE
Theoretische Informatik (SoSe 2016)
= eine beliebige Menge von Wörtern
(über festem Alphabet)
1. Alphabete, Wörter, Sprachen
4 / 26
Alphabete
Ein Alphabet (Σ, <) besteht aus:
I
I
einer endlichen, nichtleeren Menge Σ
einer totalen (= linearen) Ordnung < auf Σ
Die Elemente von Σ heißen die Buchstaben (Symbole) des Alphabets.
Wir listen Alphabete geordnet auf:
Schreiben wir Σ = {a0 , . . . , an }, so gilt a0 < a1 < · · · < an .
Ein Alphabet mit n Buchstaben heißt n-äres Alphabet und wird mit Σn
bezeichnet. Insbesondere:
I
I
Σ1 = {0}(= {1}, = {|}) unäres Alphabet
Σ2 = {0, 1} binäres Alphabet
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
5 / 26
Wörter
Ein Wort über dem Alphabet (Σ, <) ist eine endliche (geordnete) Folge
von Buchstaben aus Σ.
Das leere Wort (d.h. die leere Folge) wird mit λ bezeichnet.
Nichtleere Wörter w geben wir durch Auflisten der Buchstaben in der
Reihenfolge ihrer Vorkommen an:
w = w(0) . . . w(n − 1)
wobei w(i) der (i + 1)te Buchstabe in w ist.
Die Länge |w| eines Wortes w ist die Anzahl der Vorkommen von
Buchstaben in w: |λ| = 0 und |w(0) . . . w(n − 1)| = n
Daneben betrachten wir die Funktionen
#a (w) = Anzahl der Vorkommen des Buchstaben a im Wort w
Offensichtlich gilt: |w| = ∑a∈Σ #a (w)
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
6 / 26
Wörter (2)
Σ∗
Menge aller Wörter über Σ
Σ+
Menge aller nichtleeren Wörter über Σ
Σn
Menge der Wörter der Länge n über Σ
Σ≤n
Menge der Wörter der Länge ≤ n über Σ
usw.
Es gilt: |Σnk | = k n
I |Σn | =
1
I |Σn | =
2
Insbesondere:
1 und |Σ<n
1 |=n
n
2n und |Σ<n
2 | = 2 −1
BEISPIELE: Σ51 = {00000}, Σ0k = {λ}, Σ22 = {00, 01, 10, 11}.
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
7 / 26
Wörter als Baum-Knoten
Wörter über dem k-ären Alphabet kann man als Knoten im (unendlichen)
vollständigen k -ären Baum auffassen. Die Wörter der Länge n entsprechen
dabei den Knoten der Tiefe n. (Entsprechend kann man auch Σ≤n
k mit dem
vollständigen k -ären Baum der Tiefe n identifizieren.)
In den folgenden Abbildungen haben wir (für den Fall k = 2 bzw. k = 1) die
Knoten, die das Wort 010 bzw 000 repräsentieren, hervorgehoben:
h
h
0
1
0
h
h
h
0
0
0
1
1
h
h
h
h
h
0
0 1 0 1 0 1 0 1
•h
h h •h h h h h h
0
h
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
8 / 26
Verkettung von Wörtern
Die grundlegende Operation auf Wörtern ist die Verkettung (Konkatenation) ◦
von Wörtern:
v = v (0) . . . v (m) & w = w(0) . . . w(n) ⇒ v ◦ w = v (0) . . . v (m)w(0) . . . w(n)
w ◦λ = λ◦w = w
SCHREIBWEISE: Statt v ◦ w schreiben wir meist einfach vw.
BEMERKUNG: Die Verkettung ist assoziativ (aber nicht kommutativ).
Das leere Wort ist neutrales Element bzgl. der Verkettung.
(D.h. (Σ∗ , ◦) ist Halbgruppe mit 1.)
BEISPIELE:
I
I
(ab ◦ bca) ◦ c = abbca ◦ c = abbcac = ab ◦ bcac = ab ◦ (bca ◦ c)
a ◦ b = ab 6= ba = b ◦ a
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
9 / 26
Verkettung von Wörtern (2)
Mit Hilfe der Verkettung definieren wir:
Gilt w = xyz so sind
I
I
I
x, y, z Teilwörter (Infixe) von w
x ein Anfangsstück (Präfix) von w (x v w)
Gilt yz 6= λ so ist x ein echtes Anfangsstück von w (x < w).
z ein Endstück (Suffix) von w.
SCHREIBWEISE: w n = w(0) . . . w(n − 1) ist das Anfangsstück von w
der Länge n.
Die n-fache Iteration w n eines Wortes w ergibt sich durch Verketten von
n Kopien von w. Induktiv: w 0 = λ und w n+1 = w n w.
BEISPIELE:
abb v abb und abb 2 = ab < abb
(abb)3 = abbabbabb
(cc)0 (ab)2 c 3 (bb)3 9 = ababcccbbbbbb 9 = ababcccbb
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
10 / 26
Homomorphismen
Eine mit der Konkatenation verträgliche Abbildung nennt man
Homomorphismus. Formal:
Ein Homomorphismus h ist eine Abbildung h : Σ∗ → T ∗ , für die gilt:
h(λ) = λ und ∀x, y ∈ Σ∗ [h(x ◦ y ) = h(x) ◦ h(y)]
BEMERKUNG: Jeder Homomorphismus h ist bereits durch sein
Verhalten auf den Buchstaben (d.h. Wörtern der Länge 1) bestimmt:
Jede Abbildung h : Σ → T ∗ lässt sich in eindeutiger Weise zu einem
Homomorphismus fortsetzen. (Übung!)
BEISPIEL: Für den von h(a) = 11, h(b) = λ, h(c) = 0 induzierten
Homomorphismus h : Σ∗3 → Σ∗2 gilt z.B.:
h(bacbba) = h(b)h(a)h(c)h(b)h(b)h(a) = λ ◦ 11 ◦ 0 ◦ λ ◦ λ ◦ 11 = 11011
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
11 / 26
Homomorphismen (2): Binärkodierung
Beispiele für Homomorphismen sind Block-Codes - insbesondere die
Binärkodierung:
Den von
bink : Σk → Σ∗2 mit bink (ai ) = 0i 1k−i
(Σk = {a0 , ..., ak −1 }, k ≥ 3) induzierten Homomorphismus bink : Σ∗k → Σ∗2
bezeichnet man als Binärkodierung.
NB: |bink (w)| = k|w| und bink injektiv.
Man beachte, dass jeder Homomorphismus berechenbar ist. Die
(partielle) Umkehrabbildung von bink ist offensichtlich auch berechenbar
aber kein Homomorphismus (und auch nicht zu einem
Homomorphismus fortsetzbar; Warum?).
Im Gegensatz zu bink gibt es keinen injektiven Homomorphismus
h : Σ∗k → Σ∗1 für k ≥ 2.
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
12 / 26
Ordnungen auf Wörtern (1): Lexikographische
Ordnung
Die Wörter über einem Alphabet (Σ, ≤) lassen sich mit Hilfe der Ordnung <
des Alphabets lexikographisch ordnen:
v <lex w ⇔ v < w oder ∃ x ∈ Σ∗ ∃ a, b ∈ Σ (a < b & xa v v & xb v w)
BEISPIELE (Σ = Σ3 = {a, b, c}):
λ <lex a, abb <lex abba, aaaa <lex b, bcaac <lex bcaba
Fasst man die Wörter über Σk als Knoten des unendlichen vollständigen
k -ären Baumes auf, so erhält man die gemäß <lex geordneten Wörter,
wenn man den Baum in Präorder (Tiefendurchlauf) durchläuft.
Die lexikographische Ordnung hat den Nachteil, dass Wörter unendlich
viele Vorgänger haben können. Z.B. gilt für das binäre Alphabet Σ2 :
λ <lex 0 <lex 00 <lex 000 <lex 0000 <lex · · · <lex 1
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
13 / 26
Ordnungen auf Wörtern (2): Längen-lexikographische
Ordnung
Man betrachtet daher in der Regel die längen-lexikographische Ordnung <
auf Σ∗ , bei der die Wörter zunächst nach ihrer Länge (Hauptordnungskriterium) und dann Wörter gleicher Länge lexikographisch (Nebenordnungskriterium) geordnet werden:
v < w ⇔ |v | < |w| oder [|v | = |w| und v <lex w]
Diese Ordnung entspricht dem Breitendurchlauf durch den Baum Σ∗ .
BEISPIELE (Σ = Σ3 ):
I
I
cb < a3 (da |cb| < |aaa|)
ac < ba (da |ac| = |ba| und ac <lex ba)
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
14 / 26
Mehr zur längen-lexikographischen Ordnung
Beim unären Alphabet Σ1 = {1} stimmt < mit <lex überein:
10 (= λ) < 11 (= 1) < 12 (= 11) < 13 < 14 < . . .
Für das binäre Alphabet Σ2 = {0, 1} gilt
λ < 0 < 1 < 00 < 01 < 10 < 11 < 000 < 001 < . . .
(N, <) ist (effektiv) isomorph zu (Σ∗ , <), d.h. es gibt eine (berechenbare)
Bijektion f : N → Σ∗ , die ordnungserhaltend ist, d.h.
m < n ⇔ f (m) < f (n)
erfüllt (m, n ∈ N = {0, 1, 2, 3, . . . }).
Die Wörter in Σ∗ lassen sich also bzgl. ≤ durchnummerieren.
(Σ,<)
wn
:= das (n + 1)-te Wort in Σ∗ bzgl. <
(Σ2 ,<)
SCHREIBWEISE: wn := wn
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
15 / 26
Wörter vs. Zahlen
Manchmal identifizieren wir das Binärwort wn mit der Zahl n, d.h.
fassen wn als Darstellung von n auf.
wn stimmt nicht mit der üblichen Binärzahldarstellung Bin(n)
überein (da bei dieser führende Nullen keinen Einfluss auf den
Zahlwert haben; s. Übungen).
Da sich die (natürlichen) Zahlen und die Wörter über einem
gegebenem Alphabet effektiv bijektiv ineinander überführen
lassen, können wir die Berechenbarkeitstheorie wahlweise auf
Wörtern (→ Turingmaschinen) oder Zahlen (→ Registermaschinen, rekursive Funktionen) entwickeln.
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
16 / 26
Sprachen
Eine Sprache L über dem Alphabet Σ ist eine Menge von Wörtern über
Σ, d.h. eine Teilmenge von Σ∗ .
Die Menge aller Sprachen über Σ ist also gerade die Potenzmenge
von Σ∗ : P (Σ∗ ) = {L : L ⊆ Σ∗ }
Eine Menge von Sprachen (über festem Alphabet Σ) bezeichnen wir
als Klasse.
BEZEICHNUNGEN:
•
•
•
•
a, b, c, . . . : Buchstaben
. . . , u, v , w, x, y , z: Wörter
A, B, C, . . . , Z : Sprachen
A, B, C, . . . , Z: Klassen
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
17 / 26
Mengenoperationen auf Sprachen
Da Sprachen Mengen sind, können wir die üblichen
mengentheoretischen Operationen verwenden (L, L1 , L2 ⊆ Σ∗ ):
L1 ∪ L2 = {x ∈ Σ∗ : x ∈ L1 oder x ∈ L2 }
(Vereinigung)
L1 ∩ L2 = {x ∈ Σ∗ : x ∈ L1 & x ∈ L2 }
(Durchschnitt)
L1 \ L2 = {x ∈ Σ∗ : x ∈ L1 & x 6∈ L2 }
((Mengen-)Differenz)
L = {x ∈ Σ∗ : x 6∈ L} (= Σ∗ \ L)
(Komplement)
L1 4L2 = (L1 \ L2 ) ∪ (L2 \ L1 )
(Symmetrische Differenz)
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
18 / 26
Wortoperationen auf Sprachen
Die auf den Wörtern definierten Operationen der Verkettung und Iteration
induzieren entsprechende Sprachoperationen:
L1 L2
=
{xy : x ∈ L1 & y ∈ L2 }
Verkettung von L1 und L2
Ln
=
{x1 . . . xn : xi ∈ L} (L0 = {λ}, L1 = L, L2 = LL, . . . )
n-te Potenz von L
L∗
=
{x1 . . . xn : n ≥ 0 & xi ∈ L} =
Iteration von L
S
L+
=
{x1 . . . xn : n ≥ 1 & xi ∈ L} =
S
n
n≥0 L
n
n≥1 L
Hierbei schreiben wir auch aL statt {a}L.
BEISPIELE. 1. {00}∗ 1{1}∗ = {00}∗ {1}+ = {02m 1n : m ≥ 0 & n ≥ 1}.
2. λ ∈ L∗ für alle Sprachen L. Z.B. 0/ ∗ = {λ}.
3. λ ∈ L+ ⇔ λ ∈ L.
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
19 / 26
Mächtigkeit von Sprachen und Klassen
In der Mengenlehre unterscheidet man die Kardinalität (Mächtigkeit, Größe)
unendlicher Mengen. Insbesondere unterscheidet man zwischen
abzählbaren und überabzählbaren Mengen, indem man den Größenbegriff
endlicher Mengen verallgemeinert.
Die Kardinalität von Mengen vergleicht man durch
|M1 | ≤ |M2 | ⇔ ∃ f : M1 → M2 injektiv
M1 und M2 sind gleichmächtig (|M1 | = |M2 |), falls |M1 | ≤ |M2 | und |M2 | ≤ |M1 |
gilt. M ist abzählbar unendlich, falls |M| = |N|.
M ist (höchstens) abzählbar, wenn |M| ≤ |N|, d.h. wenn M endlich oder
abzählbar unendlich ist.
Ist M nicht abzählbar, so nennt man M überabzählbar. In diesem Fall gilt
|N| < |M|.
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
20 / 26
Mächtigkeit von Sprachen und Klassen (2)
SATZ. Für jedes Alphabet Σ gilt:
(a) Jede Sprache L über Σ ist abzählbar.
(b) Die Menge aller Sprachen über Σ ist nicht abzählbar.
Es gibt also mehr Sprachen als Wörter!
BEWEIS. (a) Wie schon gezeigt, gibt es eine Bijektion f : N → Σ∗ , weshalb
|N| = |Σ∗ |. Die Menge Σ∗ aller Wörter über Σ ist daher abzählbar unendlich.
Weiter ist jede Teilmenge einer abzählbaren Menge wiederum abzählbar.
(b) Der Beweis benutzt das bekannte Cantor-Diagonalargument (mit dessen
Hilfe man auch zeigt, dass es überabzählbar viele reelle Zahlen gibt):
Widerspruchsannahme: hLn : n ≥ 0i sei eine Liste aller Sprachen über Σ.
Die Sprache L über Σ mit
wnΣ ∈ L :⇔ wnΣ 6∈ Ln
kommt in dieser Liste nicht vor. Widerspruch!
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
21 / 26
Darstellung von Sprachen
Unter einer Darstellung einer Sprache L verstehen wir eine
endliche Beschreibung der Sprache.
Eine einheitliche Methode zur Darstellung von Sprachen
bezeichnen wir als Darstellungsweise.
Formaler kann man die Darstellungen bzgl. einer festen
Darstellungsweise als Wörter über einem geeigneten Alphabet
auffassen.
Da es mehr Sprachen als Wörter gibt, gibt es also für jede
Darstellungsweise Sprachen, die nicht darstellbar sind!
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
22 / 26
Darstellung (un)endlicher Sprachen
Endliche Sprachen lassen sich durch eine vollständige Auflistung der
Elemente darstellen:
L1 = {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24}.
Diese Darstellung ist i.a. jedoch sehr länglich und unübersichtlich. Eine
Darstellung der Sprache durch Angabe einer charakteristischen
Eigenschaft der Elemente wird daher meist vorgezogen:
L1 = {x ∈ N : x ≤ 24 & x gerade}
Dieses Vorgehen ermöglicht auch die Beschreibung unendlicher
Sprachen:
L01 = {x ∈ N : x gerade} (= {0, 2, 4, . . . })
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
23 / 26
Explizite vs. implizite Darstellungen
Beschreibt man eine Sprache durch Auflisten der Elemente oder
Angabe einer charakteristischen Eigenschaft derselben, so sprechen wir
von einer expliziten Darstellung.
Alternativ können Sprachen implizit durch eine induktive (rekursive)
Charakterisierung dargestellt werden.
BEISPIEL (s. Übungen):
I
I
Explizit: L2 = {w ∈ Σ∗2 : #0 (w) = #1 (w)}.
Implizit: L2 ist die kleinste Sprache L ⊆ Σ∗ mit folgenden 3
Eigenschaften:
• λ ∈ L.
• Gehört w zu L, so auch 0w1 und 1w0.
• Gehören v und w zu L, so auch vw.
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
24 / 26
Informatische Sprachdarstellungen
In der Vorlesung werden wir informatische Sprachdarstellungen betrachten:
BERECHENBARKEITSTHEORIE: In der Berechenbarkeitstheorie
betrachten wir algorithmische Darstellungen von Sprachen, d.h. geben
Algorithmen an, die die Sprachen eindeutig festlegen. Dabei
unterscheiden wir:
I
ENTSCHEIDUNGSVERFAHREN: Der Algorithmus stellt bei
Eingabe eines Wortes fest, ob dieses zur Sprache gehört.
I
AUFZÄHLUNGSVERFAHREN: Der Algorithmus gibt alle Elemente
der Sprache (und nur diese) sukzessive aus. (Ist die Sprache
unendlich, so läuft das Verfahren unendlich lang; die Beschreibung
des Verfahrens ist jedoch endlich!)
FORMALE SPRACHEN:
I
Hier werden wir Sprachen mit Hilfe (generativer = erzeugender)
GRAMMATIKEN beschreiben.
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
25 / 26
Mehrdimensionale Sprachen und Wortfunktionen
Sprachen beschreiben eindimensionale Entscheidungsprobleme.
Zur Beschreibung mehrdimensionaler Probleme oder funktionaler Probleme
(Berechnungs-, Such-, bzw. Optimierungsprobleme) verwenden wir
mehrdimensionale Sprachen bzw. Wortfunktionen:
MEHRDIMENSIONALE SPRACHEN:
• L ⊆ Σ∗1 × · · · × Σ∗n (inhomogen)
• L ⊆ Σ∗ × · · · × Σ∗ (homogen)
(1-DIM.) WORTFUNKTIONEN:
• f : Σ∗1 → Σ∗2
MEHRDIMENSIONALE WORTFUNKTIONEN:
• f : Σ∗1 × · · · × Σ∗n → T ∗
∗ stellen wir durch m mehrdim. Wortfunktionen f : Σ∗ × · · · × Σ∗ → T ∗ dar.
Funktionen vom Typ f : Σ∗1 × · · · × Σ∗n → T1∗ × · · · × Tm
n
i
1
i
Wie bei Sprachen können wir bei Wortfunktionen zwischen inhomogenen (s.o.) und homogenen (alle Alphabete gleich)
Funktionen unterscheiden.
Im folgenden betrachten wir häufig nur den 1-dimensionalen Fall und lassen
die Verallgemeinerung zum mehrdimensionalen Fall als Übung.
Theoretische Informatik (SoSe 2016)
1. Alphabete, Wörter, Sprachen
26 / 26
Herunterladen