• Keine Ergebnisse gefunden

10 Das Stringmonoid

Im Dokument Diskrete Strukturen Manuskript (Seite 101-104)

3(k−1)(log2(k) + log2(k−1

k )−1) +k≥ 1

3(k−1)(log2(k)−1−1) +k

= 1

3(k−1)(log2(k)−2) +k=1

3klog2(k)−2 3k−1

3log2(k) +2 3+k

= 1

3klog2(k) +1 3k−1

3log2(k) +2 3 ≥1

3klog2(k) +2 3 ≥1

3klog2(k) = 1 3yk. Nach dem Induktionsprinzip giltxk13yk für allek∈N0 mitk≥1.

Fürk∈N0 mitk≥2 gilt somit 1

3yk≤xk≤2(x0+ 1)yk.

Folglich wächstxungefähr so schnell wiey.

10 Das Stringmonoid

Nach der bis hierher erfolgten abstrakten Begriffsbildung wollen wir in diesem Abschnitt eine Anwendung aus der Informatik kurz anreißen. Hierzu führen wir das Stringmonoid ein, welches die Grundlage für die insbesondere in der theoretischen Informatik untersuchten formalen Sprachen über einem gegebenen Alphabet bildet. Im Anschluss zeigen wir einen Zusammenhang zwischen formalen Sprachen und sogenannten Automaten, welche im Wesentlichen Mengen über dem Stringmonoid sind.

Begriffsbildung

Wir beginnen mit dem Begriff des Stringmonoids.

(10.1) Bemerkung. Es sei eine MengeX gegeben. Die MengeS˙

k∈N0Xk wird zu einem Monoid mit Monoid-verknüpfung

((x1, . . . , xk),(y1, . . . , yl))7→(x1, . . . , xk, y1, . . . , yl) und Einselement( ).

(10.2) Definition (Stringmonoid). Es sei eine Menge X gegeben. Das Monoid mit unterliegender Men-ge S˙

k∈N0Xk und der Verknüpfung ((x1, . . . , xk),(y1, . . . , yl)) 7→(x1, . . . , xk, y1, . . . , yl) aus Bemerkung (10.1) wird Stringmonoid (oder freies Monoid oderWortmonoid) überX genannt und als X notiert. Die Monoid-verknüpfung vonXwirdKonkatenation (oderAneinanderhängung) genannt. Ein Element vonXwirdString (oder Zeichenkette) in X genannt. Das Einselement von X wird leerer String in X genannt und als ε := ( ) notiert.

Für einen String(x1, . . . , xk)inX schreiben wirx1. . . xk := (x1, . . . , xk).

(10.3) Beispiel.

(a) Es sei ein Objektagegeben. Dann ist das Stringmonoid über{a} gegeben durch {a}={ε, a, aa, aaa, . . .}.

(b) Es seien verschiedene Objekteaundb gegeben. Dann ist das Stringmonoid über{a, b} gegeben durch {a, b}={ε, a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb, . . .}.

(10.4) Bemerkung. Für jede MengeX ist(X)×={ε}.

Sprachen

Die Wichtigkeit des Stringmonoids, insbesondere in der (theoretischen) Informatik, ergibt sich durch die Be-trachtung von Teilmengen: (44)

44Formale Sprachen werden an der RWTH Aachen bspw. im KursFormale Sprachen, Automaten, Prozesse(etwa 2. Semester im Studiengang B.Sc. Informatik) studiert.

(10.5) Definition(Sprache). Es sei eine MengeX gegeben. Eine (formale)SpracheüberX ist eine Teilmenge vonX.

Es sei eine SpracheL überX gegeben. Die MengeX wirdAlphabet von L genannt. Ein Element vonX wird Zeichen (oderBuchstabe) vonLgenannt. Ein Element vonLwirdWort inLgenannt. (45)

Da für eine Menge X auch das Stringmonoid X eine Sprache über X ist, werden die Strings inX, d.h. die Elemente vonX, auch Wörter inX genannt.

(10.6) Beispiel. Es seien verschiedene Objekteaundb gegeben.

(a) Es ist

{anbn|n∈N}={ab, aabb, aaabbb, . . .} eine Sprache über {a, b}.

(b) Es ist

{(ab)n|n∈N0}={ε, ab, abab, ababab, . . .} eine Sprache über {a, b}.

Als Anwendungsbeispiel geben wir eine mögliche Formalisierung für die Sprache der Aussagenlogik, vgl. Defi-nition (1.1), an:

(10.7) Anwendungsbeispiel. Das Alphabet der Aussagenlogik sei modelliert als MengeX gegeben durch X ={A1, A2, A3, . . .}∪ {0,˙ 1,¬,∧,∨,⇒,⇔}∪ {(,˙ )}.

Die Sprache der Aussagenlogik lässt sich dann als (formale) Sprache überX auffassen.

Auch eine beliebige Programmiersprache, wie z.B. C, lässt sich als formale Sprache modellieren:

(10.8) Anwendungsbeispiel. Die Befehle und erlaubten Zeichen einer Programmiersprache seien als Elemente einer MengeX modelliert. Quelltexte für diese Programmiersprache lassen sich dann als Wörter einer Sprache überX auffassen.

Als kurzen Ausblick skizzieren wir das Wortproblem: Es sei eine MengeX gegeben. Für einen String xin X bezeichnen wir einen Stringx0 inX als einenUnterstring (oderTeilstring) vonx, falls es StringspundsinX mitx=px0sgibt.

Ferner sei eine Relation r auf X gegeben. Die bzgl. r in Relation stehenden Strings in X fassen wir als

„Ersetzungsregeln“ im folgenden Sinn auf: Es seien Strings x und y in X gegeben. Wir sagen, dass x und y durch eine elementare Ersetzung auseinander hervorgehen, wenn es Strings p, s, x0, y0 in X mit x = px0s, y = py0s und x0 r y0 gibt, d.h. falls y durch Ersetzung des Unterstrings x0 von x durch den Unterstring y0 entsteht und umgekehrt.

Das Wortproblem ist nun folgendes: Es seien StringsxundyinXgegeben. Lässt sich überprüfen, obydurch eine endliche Folge von elementaren Ersetzungen ausxhervorgeht? In vielen Fällen ist dieses Problem nachweislich unentscheidbar.

Es gibt eine bzgl. Inklusion kleinste Sprache Lx, welche zum einen x enthält und welche zum anderen mit jedem Wort z in Lx auch alle diejenigen Strings in X enthält, die durch eine elementare Ersetzung aus z hervorgehen. (46) Mit Hilfe vonLxlässt sich das Wortproblem wie folgt umformulieren: Lässt sich überprüfen, oby ein Wort vonLx ist?

45Gelegentlich wird auch eine andere Terminologie verwendet: Die MengeX wird auchVokabular vonLgenannt. Ein Element vonX wird dannWort inLgenannt. Ein Element vonLwird dannSatz inLgenannt.

46D.h. einerseits istLxeine Sprache derart, dassxinLxenthalten ist, und so, dass mit jedem WortzinLxauch alle diejenigen Strings inX enthalten sind, welche durch eine elementare Ersetzung auszhervorgehen, und andererseits gilt für jede SpracheL derart, dassxinLenthalten ist, und so, dass mit jedem WortzinLauch alle diejenigen Strings inXenthalten sind, bereits, dass jedes Wort inLx auch ein Wort vonList. Vgl. Definition (8.15)(a).

Automaten

In der Informatik spielen Operationen des Stringmonoids, siehe Definition (10.2), eine wichtige Rolle.

(10.9) Definition (Automat). Es sei eine MengeX gegeben. Ein Automat (oder deterministischer Automat oderZustandsmaschine oderdeterministische Zustandsmaschine) überX besteht aus einer MengeM überX und TeilmengenS undF vonM.

Unter Missbrauch der Notation bezeichnen wir sowohl den besagten Automaten als auch die unterliegende Men-ge überX mit M. Die unterliegende Menge vonM wird Menge der Zustände (oderZustandsmenge) von M genannt. Ein Element von M wird Zustand von M genannt. Die Rechtsoperation von M wird (erweiterte) Übergangsfunktion (oder (erweiterte)Transitionsfunktion) vonM genannt. Die MengeX wirdEingabealphabet (oderAlphabet) vonM genannt. Ein Element vonX wirdZeichen (oderBuchstabe) vonM genannt. Die Men-geS wirdMenge der Anfangszustände (oder Menge der Startzustände oderMenge der Initialzustände) vonM genannt. Ein Element vonS wirdAnfangszustand (oderStartzustand oderInitialzustand) vonM genannt. Die MengeF wirdMenge der Endzustände (oderMenge der Finalzustände oderMenge der Terminalzustände oder Menge der akzeptierenden Zustände) vonM genannt. Ein Element vonF wirdEndzustand (oderFinalzustand oderTerminalzustand oderakzeptierender Zustand) vonM genannt.

Die (erweiterte) Übergangsfunktion eines AutomatenM über einer MengeX ist eindeutig durch ihre Einschrän-kung aufM ×X festgelegt:

(10.10) Proposition. Es seien MengenX undM gegeben. Dann ist

{δ∈Map(M×X, M)|δ ist eine Rechtsoperation vonX aufM} →Map(M×X, M), δ7→((q, a)7→q δ a) eine wohldefinierte Bijektion.

Beweis. Dies sei dem Leser zur Übung überlassen.

Wegen Proposition (10.10) lassen sich endliche Automaten über endlichen Alphabeten durch Skizzen veran-schaulichen, bei denen die Übertragungsfunktion sowie Anfangs- und Endzustände durch Pfeile angegeben werden:

(10.11) Beispiel. Es seien verschiedene Objektea undb sowie verschiedene Objekteq1,q2,q3 gegeben. Wir haben einen AutomatenM über{a, b}mit Zustandsmenge{q1, q2, q3}, Übergangsfunktion bestimmt durch

q1a=q2, q1b=q1, q2a=q2, q2b=q3, q3a=q2, q3b=q3,

Menge der Anfangszustände gegeben durch{q1}und Menge der Endzustände gegeben durch{q3}.

q1 q2 q3

a b

b a

a b

Die Bedeutung von Automaten liegt in der Erkennung formaler Sprachen:

(10.12) Definition(Sprache eines Automaten). Es seien eine MengeX und ein AutomatM überX gegeben.

DieSprache vonM ist definiert als

L(M) :={x∈X|es gibt einen Startzustandpund einen Endzustand qvonM mit px=q}.

Es sei ein String xin X gegeben. Wir sagen, dassxvon M akzeptiert (oder erkannt) wird, wennxein Wort inL(M)ist, und ansonsten, dassxvonM zurückgewiesen (oderverworfen) wird.

(10.13) Beispiel. Es seien verschiedene Objekte a und b gegeben. Ferner sei M der folgende Automat über{a, b}.

q1 q2 q3

a b

b a

a b

Dann ist

L(M) ={xabn|x∈ {a, b},n∈N}.

Beweis. Zunächst sei ein vonM akzeptiertes Wortygegeben. Daq1der einzige Anfangszustand vonM undq3 der einzige Endzustand von M ist, giltq1y = q3. Wegen q1ε = q1 6= q3 ist y 6=ε, und wegen qia = q2 6=q3 für i ∈ {1,2,3} endet y ferner nicht auf a, d.h. es gibt kein z ∈ {a, b} mit y = za. Folglich endet y auf b.

Es seien n ∈ N und z ∈ {a, b} derart gegeben, dass y = zbn ist und z nicht auf b endet, d.h. so, dass es keinx∈ {a, b} mitz =xbgibt. Dann istq1zbn =q1y=q3. Wegenq1bn =q16=q3 istz 6=ε. Folglich endetz aufa, d.h. es gibt ein x∈ {a, b} mit z=xa. Wir haben somity=zbn=xabn.

Umgekehrt seienx∈ {a, b} undn∈Ngegeben. Wegenqia=q2 füri∈ {1,2,3} ist dannq1xa=q2, also q1xabn=q2bn =q3bn−1=q3.

Daq1ein Anfangszustand undq3ein Endzustand vonM ist, wird folglichxabn vonM akzeptiert.

Insgesamt istL(M) ={xabn|x∈ {a, b},n∈N}.

Im Dokument Diskrete Strukturen Manuskript (Seite 101-104)