Sie sind auf Seite 1von 18

Partielle Ableitung von regulären Ausdrücken

und Konstruktion der endlichen Automaten von


Valentin Antimirov

Katsiaryna Mironava

Albert-Ludwigs-Universität, Freiburg, Deutschland

Abstract. Wir führen einen Begriff der partiellen Ableitung eines regulären
Ausdrucks ein und wenden ihn auf endliche Automatenkonstruktionen
an. Der Begriff ist eine Verallgemeinerung des bekannten Begriffs der
Wortableitung von Brzozowski: partielle Ableitungen beziehen sich auf
nicht deterministische endliche Automaten (NEA) auf dieselbe natürliche
Weise wie Ableitungen auf deterministische (DEA). Wir geben eine kon-
struktive Definition von partiellen Ableitungen und beweisen mehrere
Fakten, insbesondere: (1) Jede Ableitung eines regulären Ausdrucks t
kann durch eine endliche Menge von partiellen Ableitungen von r dargestellt
werden. (2) Die Menge aller partiellen Ableitungen von t ist endlich
und ihre Kardinalität ist kleiner oder gleich eins plus der Anzahl der
Vorkommen von Buchstaben aus A , die in t erscheinen; (3) Jede par-
tielle Ableitung von t ist entweder eine reguläre Einheit oder ein Teil von
t oder eine Verkettung mehrerer solchen Teile. Diese theoretischen Ergeb-
nisse führen uns zu einem neuen Algorithmus, um reguläre Ausdrücke
in relativ kleine NEA umzuwandeln, und ermöglichen es uns, einige
Verbesserungen an Brzozowskis Algorithmus zum Konstruieren von DEA
bereitzustellen. Wir präsentieren einige Beispiele.

Keywords: Ableitungen · Partielle Ableitungen· Endliche Automaten.

1 Notationen
A - das endliche Alphabet (z.B. a, b, c, ... ∈ A sind Buchstaben).
A ∗ - eine Menge von allen endlichen Wörter über A inklusive ε, als neutrales
Element und ist gleich: A ∗ = {ε} ∪ A + .
A + - eine Menge von allen nicht leeren Wörter über A (Kleene Plus) und ist
gleich: A + = A · A ∗ = A ∗ \ {ε}, (·)− Konkatenation.
w - ein Wort über das Alphabet A (z.B. u, v, w, ... ∈ A ∗ sind Wörter über
A ).
W - eine Menge der Wörter w.
ε - ein leeres Wort.
0, ε - Konstanten.
L - eine Sprache, ist eine Menge von endlichen Wörter über A und eine Teil-
menge von A ∗ (z.B. L = {a2 , ab}).
L∗ - Iteration von der Sprache L : L∗ = i∈N Li .
S
2 K.Mironava

P(A ∗ ) - die Potenzmenge von A ∗ und damit die Menge aller Sprachen über
A (z.B. L, U, V ∈ P(A ∗ ) sind Sprachen).
Reg[A ] - ist eine Menge von allen regulären Sprachen über A und die kle-
inste Teilmenge von P(A ∗ ), die enthält eine leere Menge ∅, ein leeres Wort
{ε}, alle Buchstaben über A und ist unter Konkatenation: L1 · L2 , Vereinigung
L1 ∪ L2 und Iteration: L∗ (Kleene Stern) abgeschlossen.
Reg1[A ] ist eine Teilmenge von Reg[A ] und besteht aus allen regulären Sprachen,
die ein leeres Wort {ε} entahlten.
Reg0[A ] ist das Komplement bezüglich Reg1[A ] und besteht aus allen regulären
Sprachen, die eine Teilmenge der Menge A + .
Reg0[A ], Reg1[A ] sind die Teilmenge, die dienen zur Unterscheidung von
regulären Ausdrücken, die Elemente von Reg[A ] : Reg0[A ] bzw. Reg1[A ]
entsprechend bezeichnen.
TReg ist eine Menge der Elementen von Reg[A ] und disjunkte Vereinigung von
TReg0 und TReg1 : TReg = TReg0 ∪TReg1 \TReg0 ∩TReg1 , TReg0 ∩TReg1 =
∅.
t - eine Zeichenkette - regulärer Ausdruck/ Term: t ∈ TReg bzw. TReg0 oder
TReg1 .
M := hM , τ, µ0 , F i - ein Automat über A .
M - eine Menge der Zustände von Automat M .
µo - ein Startzustand.
τ - eine Übergangsfunktion.
o(t) - der konstante Teil vom regulären Ausdruck t, oder die Ausgabe.
o(t) = if ε ∈ L (t) then ε else 0 fi ;
F - eine Menge der Endzustände.

2 Ableitungen

Zuerst führe ich den Begriff vom Linksquotient oder Postfix ein. Ein Postfix
umfasst alle Wörter u der Sprache A ∗ , so dass man ein solches Wort an ein Wort
w aus A ∗ anhängen kann und ein Wort w · u ∈ L erhält. Der Linksquotient von
L ist bezüglich eines Wortes w definiert durch:

w−1 L = {u ∈ A ∗ |w · u ∈ L}; (1)

Daraus folgt, dass für jedes Wort w, u ∈ A ∗ die Mitgliedschaft w ∈ L zu


ε ∈ w−1 L (u in diesem Fall ist ein leeres Wort) äquivalent ist, und dass der
Linksquotient ist gleich: u−1 (w−1 L) - zuerst wird der Linksquotient bezüglich w
berechnet, und dann der Linksquotient bezüglich u. Also, der Linksquotient ist
wieder ein Wort, das als u bezeichnet ist. Darüber hinaus ist jeder Linksquo-
tient der regulären Sprache L wieder eine reguläre Sprache und die Menge
{w−1 L|w ∈ A ∗ } von allen Linksquotienten der Sprache L ist bezüglich Wörter
über A endlich.
Gehen wir weiter zur Definition der Ableitungen.
Ausarbeitung der Artikel von V.Antimirov 3

Definition 21 Ableitungen Für jeden Buchstaben x ∈ A und jedes Wort w ∈


A ∗ berechnen die Funktionen x−1 ( ) und w−1 ( ) in TReg (Wort-)Ableitungen
von regulären Ausdrücken (bezüglich x und w entsprechend). Sie sind rekursiv
durch folgende Gleichungen definiert:

x−1 0 = 0, (2)
−1
x ε = 0, (3)
−1
x y = if x = y then ε else 0 fi , (4)
−1 −1 −1
x (r + t) = x r+x t, (5)
−1 ∗ −1 ∗
x (r ) = (x r) · r , (6)
−1 −1 −1 −1
x (r · t) = if o(r) = 0 then (x r) · t else (x r) · t + x t fi , (7)
−1
ε r = r, (8)
−1 −1 −1
(w · x) ·r =x (w r), (9)

für alle y ∈ A und r, t ∈ TReg .


Daraus folgt, dass jede Ableitung von einem regulären Ausdurck r entsprechende
Linksquotienten der Sprache L (r) bezeichnet und folgende Gleichung gilt für
alle r und w ∈ A ∗ :
L (w−1 r) = w−1 L (r)
Deshalb ist der Ausdruck w ∈ L (r) äquivalent o(w−1 r) = ε, d.h. die Ableitung
von r ist gleich ε und das Wort w gehört zur Sprache L (r), deswegen ist das
Output ein leeres Wort, also w ist vom Automaten akzeptiert.

3 Lineare Formen und partielle Ableitungen regulärer


Ausdrücke
3.1 Lineare Formen
Jeder reguläre Ausdrück t über einem Alphabet A = {xl , . . . , xk } kann in fol-
gender Form dargestellt werden:

r = o(r) + x1 · r1 + · · · + xk · rk , (10)

wobei alle ri reguläre Ausdrücke sind. In besonderem kann man annehmen, dass
jedes ri die Ableitung x−1i r ist. Diese Darstellung steht in enger Zusammen-
hang zu einem DEA von Brzozowski für r: jeder Summand xi · ri entspricht dem
Übergang vom Zustand r nach Zustand ri auf dem Buchstaben xi . Aus diesem
Grund kann die rechte Seite von (10) als deterministische lineare Faktorisierung
von r bezeichnet werden. Was es deterministisch macht, sind die folgenden zwei
Anforderungen:
• Jeder Buchstabe xi ∈ A tritt als Kopf eines Summanden xi · ri auf;
• Köpfe verschiedener Summanden sind verschiedene Buchstaben.
4 K.Mironava

Definition 31 Die lineare Form Gegeben sind ein Buchstabe x ∈ A und ein
Ausdrück t ∈ TReg , nennen wir das Paar hx, ti ein Monom mit dem Kopf x
und dem Rest t; dann sei M on = A × TReg die Menge aller Monome (über ein
gegebenes Alphabet A ): M on = Set[hx, ti]. Sei Lin die Menge linearer Formen:
Lin = Set[M on] Also, eine (nicht deterministische) lineare Form l ist eine
endliche Anzahl von Monomen hx, ti und deshalb eine endliche Untermenge von
Mon l ⊂ M on ⇒ l ∈ Lin.

Betrachten wir ein Monom hx, ti als einen regulären Term x · t. Dann Isomor-
phismus: M on ∼
= TReg und Lin ∼ = SetReg, wo SetReg = Set[TReg \ {0}] ist eine
endliche Menge der von Null verschiedenen regulären Ausdrücke, erlaubt uns für
die von Monomen hx, ti ∈ M on bezeichnete Sprache L (hx, ti) zu schreiben:

L (hx, ti) = L (x · t) = {x} · L (t) (11)

- die Sprache von Monomen ist gleich der Sprache von regulären Ausdrücken
und dem Produkt einer Menge von Buchstaben x und der Sprache von t. Für
die von einer linerare Form l ∈ Lin bezeichnete Sprache L (l)
[ [
L (l) = L (hx, ti) = {x} · L (t) (12)
hx,ti∈l hx,ti∈l

P
Außerdem kann man die Funktion P verwenden, um lineare Form l = {hx1 , r1 i, . . . , hxk , rk i}
in einen regulären Ausdrück: l = x1 + r1 , . . . , xk , rk umzuwandelnj. ⇒ Eine
lineare Form lt entspricht einem Term t und erfüllt die Gleichung:
X
t = o(t) + lt (13)

/ L (l) für eine beliebige l.


Beachten Sie Folgendes: ε ∈

3.2 Zusammenhang zwischen regulären Ausdrücken und linearen


Formen

Unser nächstes Ziel ist es, eine Korrespondenz zwischen regulären Ausdrücken
und linearen Formen herzustellen, so dass eine lineare Form lt , die einem Ausdrück
t entspricht, die Gleichung (13) erfüllt und eine nicht deterministische lineare
Faktorisierung von t bereitstellt. Dies ist in der nächsten Definition implemen-
tiert.

Definition 32 Die binäre Operation

Lin × TReg → Lin


Ausarbeitung der Artikel von V.Antimirov 5

ist eine Erweiterung der Konkatenation für linearen Formen und wird rekursiv
durch die folgenden Gleichungen definiert:

l 0=∅ (14)
l ε=l (15)
∅ t=∅ (16)
{hx, 0i} t = {hx, 0i} (17)
{hx, εi} t = {hx, ti} (18)
{hx, pi} t = {hx, p · ti} (19)
0 0
(l ∪ l ) t = (l t) ∪ (l t) (20)

für alle l, l0 ∈ Lin; t, p ∈ TReg \{0, ε}.


Die Funktion
lf ( ) : TReg → Lin
gibt die lineare Form von ihrem Argument zurück und ist mit Hilfe der folgenden
Gleichungen rekursiv definiert:

lf (0) = ∅ (21)
lf (ε) = ∅ (22)
lf (x) = {hx, εi} (23)
lf (r + t) = lf (r) ∪ lf (t) (24)
lf (r∗ ) = lf (r) r∗ (25)
lf (r0 · t) = lf (r0 ) t (26)
lf (r1 · t) = lf (r1 ) t ∪ lf (t) (27)

für alle x ∈ A , r, t ∈ TReg , r0 ∈ TReg0 (r0 enthält 0), r1 ∈ TReg1 (r1 enthält ε).

Satz 31 Für einen beliebigen Ausdruck t ∈ TReg gilt folgende Gleichung:


X
t = o(t) + lf (t) (28)

Beweis 31 Man muss zeigen, dass die beide Seiten der Gleichung (28) dieselbe
Sprache bezeichnen, also es ist zu zeigen, dass die folgende Gleichung gilt: L (t) =
L (o(t)) ∪ L (lf (t)). Da das leere Wort in der L (lf (t)) nicht enthalten ist:
ε∈/ L (lf (t)), das ist äquivalent zu: L (t) = {ε} ∪ L (lf (t)) ⇒

L (lf (t)) = L (t) \ {ε} (29)

Wir beweisen das per Induktion: √


1. t = 0 : L (lf (0)) = L (0) = L (0) \ {ε} = ∅ √
2. t = ε : L (lf (ε)) = L (0) = L (0) \ {ε} = ∅ √
3. t = a : L (lf (a)) = L ({ha, εi}) = L (a · ε) = L (a) \ {ε}
Unter dem Annahme, dass (29) für a, b ∈ TReg gilt, berechnen wir direkt:
6 K.Mironava

4. t = a + b : L (lf (a + b)) = L (lf (a) ∪ lf (b)) = L (lf (a)) ∪ L (lf (b)) =


| {z } | {z } | {z }
(24) (29) (29)

L (a) \ {ε} ∪ L (b) \ {ε} = L (a + b) \ {ε}
5.1 t = a0 · b (a0 ∈ TReg0 ) : L (lf (a0 · b)) = L (lf (a0 ) b) = L (lf (a0 )) ·L (b) =
| {z } | {z }
(26) (29)

L (a0 ) \ {ε} · L (b) = L (a0 · b) \ {ε}
5.2 t = a1 · b (a1 ∈ TReg1 ) : L (lf (a1 · b)) = L (lf (a1 ) b ∪ lf (b)) =
| {z }
(27)
L (lf (a1 )) ·L (b) ∪ L (lf (b)) = L (a1 ) \ {ε} · L (b) ∪ L (b) \ {ε} = L (a1 · b) \
| {z } | {z }
(29) (29)

{ε}
6. t = a∗ : L (lf (a∗ )) = L (lf (a) a∗ ) = L (lf (a)) ·L (a∗ ) = (L (a) \ {ε}) ·
| {z }
(29)
L (a)∗ = (L (a) \ {ε}) · (L (a) \ {ε})∗ = (L (a) \ {ε})∗ \{ε} = L (a)∗ \{ε} =
| {z } | {z } | {z }
(L0 ·L∗ =L∗ \{ε}) (L\{ε})∗ =L∗ ) L (t∗ )=L (t)∗
√ 0 0
L (a∗ ) \ {ε}

3.3 Beispiel
Nun wende ich die Gleichungen aus der Definition 3.2 an und berechne eine
lineare Form vom folgenden regulären Ausdruck:
t = (ab + b)∗ ba
Sei (ab + b)∗ = r und ba = t. Also, a, b ∈ TReg0 , r ∈ TReg1 und enthält ε, weil
die Operation Kleene Stern ist.
lf (t) = lf ((ab + b)∗ ba) =
| {z }
(27)

lf (ab + b)∗ ba ∪ lf (ba) =


| {z } | {z }
(25) (26)

(lf (ab + b) (ab + b)∗ ) ba ∪ lf (b) a =


| {z } | {z }
(24) (23)

((lf (ab) ∪ lf (b)) (ab + b)∗ ) ba ∪ {hb, εi} a=


| {z } | {z }
(26) (23)

((lf (a) b ∪ {hb, εi}) (ab + b)∗ ) ba ∪ {hb, εi} a=


| {z }
(23)

(({ha, εi} b ∪ {hb, εi}) (ab + b)∗ ) ba ∪ {hb, ai} =



{ha, εi} b (ab + b) ba ∪ {hb, εi} (ab + b)∗ ba ∪ {hb, ai} =
∗ ∗
{ha, b(ab + b) bai} ∪ {hb, (ab + b) bai} ∪ {hb, ai}
(30)
Ausarbeitung der Artikel von V.Antimirov 7

Also, lineare Form vom Ausdruck t sieht wie folgt aus:

t = ε + ab(ab + b)∗ ba + b(ab + b)∗ ba + ba

4 Partielle Ableitungen

Nun kommen wir zum Hauptdefinition der Arbeit von Antimirov.

4.1 Definition

Definition 41 Partielle Ableitungen Gegeben sind ein Ausdruck t und einen


Buchstaben x ∈ A . Ein regulärer Ausdruck p heißt partielle Ableitung von t
bezüglich x, wenn die lineare Form lf (t) ein Monom hx, pi enthält. Wir definieren
eine Funktion δx : TReg → SetReg, die eine Menge von allen von Null ver-
schiedenen partiellen Ableitungen ihres Argumentes bezüglich x zurückgibt.

δx (t) = {p ∈ TReg \{0}|hx, pi ∈ lf (t)} (31)

Folgende Gleichungen erweitern diese Funktion und erlauben es uns ein be-
liebiges Wort w ∈ A ∗ und eine beliebige Menge von Wörter W ⊂ A ∗ an der
Stelle von x und eine beliebige Menge von regulären Ausdrücken R ⊂ TReg an
der Stelle t benutzen:

δε (t) = {t}, (32)


δwx (t) = δx (δw (t)), (33)
[
δw (R) = δw (r), (34)
r∈R
[
δW (t) = δw (t), (35)
w∈W

Jedes Element aus der Menge δw (t) nennt man eine partielle Ableitung bezüglich
eines Wortes w. Eine echte partielle Ableitung von t ist eine Ableitung bezüglich
eines nichtleeren Wortes.

4.2 Beispiel der Berechnung

In diesem Beispiel berechnen wir partielle Ableitungen vom Ausdruck t = (ab +


b)∗ ba aus Beispiel 2.3. Dann lineare Form, die im Beispiel 3.3 berechnet wurde,
sieht wie folgt aus:

lf (t) = {ha, b · ti}, {hb, ti}, {hb, ai}

Dann partelle Ableitungen bezüglich a sind:


δa (t) = {b · t} ⇒ δa (t) = b · (ab + b)∗ ba und bezüglich b:
δb (t) = {t, a} ⇒ δb (t) = (ab + b)∗ ba + a
8 K.Mironava

Nun berechnen wir eine lineare Form von oben berechneten partiellen Ableitun-
gen, also von b · t, t und a. Da vom t haben wir schon, dann nur b · t und a:
lf (b · t) = lf (b) t = {hb, εi} t = {hb, ti}
lf (a) = {ha, εi}
Die partielle Ableitungen von oben genannten Ausdrücken sind:
δaa (t) = δa (δa (t)) = δa ({b · t}) = {}
δab (t) = δb (δa (t)) = δb ({b · t}) = {t}
δba (t) = δa (δb (t)) = δa ({t, a}) = {b · t, ε}
δbb (t) = δb (δb (t)) = δb ({t, a}) = {t}

4.3 Zusammenhang zwischen Ableitungen und partiellen


Ableitungen

Satz 41 Für einen beliebigen Ausdruck t ∈ TReg und ein Wort w ∈ A ∗ gilt
folgende Gleichung:
L (δw (t)) = w−1 L (t)
Mit anderen Wörter, die Sprache von partiellen Ableitungen ist gleich dem Linksquo-
tienten der Sprache des Ausdrucks t. Insbesondere, jede partielle Ableitung p ∈
δw (t) bezeichnet eine Teilmenge vom Linksquotienten w−1 L (t).

Beweis 41 Wir beweisen diesen Satz per Induktion bezüglich w.

1. Der Fall w = ε:
Dann δε = {t}
L (δε (t)) = L (t) = ε−1 L (t).

2. Sei w eine Buchstabe x ∈ A .P


Aus Satz 3.1 (28) folgt: t = o(t) + lf (t) ⇒ L (t) = L (o(t)) ∪ L (lf (t))
Sei ein Monom hy, pi presentiert einen regulären Ausdruck t. Dann steht L (t) =
L (hy, pi) = {y} · L (p) für die Sprache, die vom Monom hy, pi bezeichnet ist,
genau wie
[ [
L (lf (t)) = L (hy, pi) = {y} · L (p)
hy,pi∈lf (t) hy,pi∈lf (t)

für die Sprache, die von der Funktion lf (t), die eine lineare Form vom Ausdruck
t berechnet, bezeichnet ist. Also dann:
[
L (t) = L (o(t)) ∪ L (lf (t)) = L (o(t)) ∪ {y} · L (p)
hy,pi∈lf (t)

die Ausgabe von t in diesem Fall ist o(t) und ist gleich ε. Dann wir haben:
[ [
x−1 L (t) = x−1 ( {y} · L (p)) = x−1 {y} ∪ L (p)
hy,pi∈lf (t) hy,pi∈lf (t)
Ausarbeitung der Artikel von V.Antimirov 9

x−1 {y} ist gleich 0 ⇒


[ [ [
x−1 {y} ∪ L (p) = L (p) = L (p)
hy,pi∈lf (t) hx,pi∈lf (t) p∈δx (t)

Da δx (t) = {p ∈ TReg \{0}} kann man schreiben:


[
L (p) = L (δx (t))
p∈δx (t)

3. Der allgemeine Fall folgt aus Gleichungen, die partielle Ableitungen er-
weitern und aus Punkt 2. Sei wx ein Wort, das aus 2 Teilen besteht. Dann der
Linksquotient von diesem Wort in der Sprache L :
wx−1 L (t) = Eigenschaften von Linksquotient = x−1 (w−1 L (t)) =
[ [ [
x−1 L (δw (t)) = x−1 ( L (p)) = x−1 L (p) = L (δx (p)) =
p∈δw (t) p∈δw (t) p∈δw (t)
[
L( δx (p)) = L (δx (δw (t)) = L (δwx (t))
p∈δw (t)

Folgerung 41 Für einen beliebigen Ausdruck t ∈ TReg und ein Wort w ∈ A ∗


gilt folgende Gleichung: X
w−1 t = δw (t)

Also beide Seiten beschreiben den Linksquotienten w−1 L (t) und Elemente der
Menge δw (t) sind im Grunde genommen ”Teile” der Ableitung w−1 t. Dieser
Aussage wurde eigentlcih im Satz 3.1 bewiesen und bedeutet, dass jede partielle
Ableitung eine Teilmenge vom Linksquotient ist ⇒ Linksquotient ist die Summe
von partiellen Ableitungen.

Das möchte ich mit folgendem Beispiel erklären.

4.4 Beispiel
Nehmen wir wieder den Ausdruck aus Beispiel 3.3. Nach der Definition 2.1
bekommen wir folgende Ableitung vom t bezüglich a:

t = (ab + b)∗ ba

a−1 t = t einsetzen = a−1 (ab + b)∗ |{z}


ba =
| {z }
(r) (t)
- da die kleeneschen Hülle immer das leere Wort enthält, dann gemäß der Gle-
ichung (7) -
= (a−1 · (ab + b)∗ ) ·ba + a−1 (ba) =
| {z } | {z }
(6) (7)
10 K.Mironava

= (a−1 (ab + b)) ·(ab + b)∗ · ba + (a−1 b) ·a =


| {z } | {z }
(5) (4)
- da a 6= b ist, gemäß der Gleichung (4) a−1 b = 0 und (5) -
−1 −1 ∗
= (a | {z }b) · (ab + b) · ba + 0 =
| {zab} + a
(7) (4)
= ((a−1 a) · b) · (ab + b)∗ · ba = ε · b · (ab + b)∗ · ba =
- gemäß der Gleichung ε · a = a · ε = a ist gleich -

b(ab + b)∗ ba = b · t
P
- und das ist offensichtlich äquivalent der δa (t). Auf die P
gleiche Weise kann
man b−1 t berechnen, um zu prüfen, dass das äquivalent der δb (t) ist.
b−1 (ab + b)∗ |{z}
ba = (b−1 · (ab + b)∗ ) ·ba + b−1 (ba) =
| {z } | {z } | {z }
(r) (t) (6) (7)
−1
= (b (ab + b)) ·(ab + b)∗ · ba + (b−1 b) ·a =
| {z } | {z }
(5) (4)
- da b = b ist, gemäß der Gleichung (4) b−1 b = ε und (5) -
= (b|−1 −1 ∗
{zab} + b|{z}b) · (ab + b) · ba + ε · a =
(7) (4)
= ((b−1 a) · b + ε) · (ab + b)∗ · ba + a = (0 + ε) · (ab + b)∗ · ba + a =

= (ab + b)∗ ba + a = t + a
Nun wenden wir uns der Untersuchung weiterer Eigenschaften von partiellen
Ableitungen und Mengen von partiellen Ableitungen zu.

5 Eigenschaften partieller Ableitungen


Im folgenden Satz sind die Gleichungen, die die Funktion δx ( ) bezeichnen, pre-
sentiert.
Satz 51 Für beliebigen regulären Ausdrücke a, b ∈ TReg , a0 ∈ TReg0 , a1 ∈
TReg1 und Buchstaben x, y ∈ A gelten folgende Gleichungen:
δx (0) = ∅ (36)
δx (ε) = ∅ (37)
δx (y) = if x = y then {ε} else ∅ fi (38)
δx (a + b) = δx (a) + δx (b) (39)
δx (a∗ ) = δx (a) · a∗ (40)
δx (a0 · b) = δx (a0 ) · b (41)
δx (a1 · b) = δx (a1 ) · b ∪ δx (b) (42)
Beweis 51 Für den Beweis verwende ich die Gleichungen aus der Definition
3.2 und die Gleichung (31):
Ausarbeitung der Artikel von V.Antimirov 11


1. δx (0) : δx (0) = {p ∈ TReg \{0}|hx, pi ∈ lf (0)} = ∅
| {z }
=∅

2. δx (ε) : δx (ε) = {p ∈ TReg \{0}|hx, pi ∈ lf (ε)} = ∅
| {z }
=∅

3. δx (x) : δx (x) = {p ∈ TReg \{0}|hx, pi ∈ lf (x) } = {ε}
| {z }
={hx,εi}

4. δx (y) : δx (y) = {p ∈ TReg \{0}|hx, pi ∈ lf (y) } = {∅}
| {z }
={hy,εi}

5. δx (a + b) :
δx (a + b) = {p ∈ TReg \{0}|hx, pi ∈ lf (a)} ∪ {p ∈ TReg \{0}|hx, pi ∈ lf (b)} = √
{p ∈ TReg \{0}|hx, pi ∈ lf (a)∪lf (b)} = {p ∈ TReg \{0}|hx, pi ∈ lf (a+b)}

6. δx (a1 · b):
δx (a1 · b) = δx (a1 ) · b ∪ δx (b) =
{p ∈ TReg \{0}|hx, pi ∈ lf (a1 )} · b ∪ {p ∈ TReg \{0}|hx, pi ∈ lf (b)} =
{p ∈ TReg \{0}|hx, pi ∈ lf (a1 ) · b} ∪ {p ∈ TReg \{0}|hx, pi ∈ lf (b)} =
{p ∈ TReg \{0}|hx, pi ∈ lf (a1 ) · b ∪ lf (b)} = √
{p ∈ TReg \{0}|hx, pi ∈ lf (a1 ·b)}

7. δx (a0 · b) :
δx (a0 · b) = δx (a0 ) · b = {p ∈ TReg \{0}|hx, pi ∈ lf (a0 )} · b = √
{p ∈ TReg \{0}|hx, pi ∈ lf (a0 )·b} = {p ∈ TReg \{0}|hx, pi ∈ lf (a0 ·b)}

8. δx (a∗ ) :
δx (a∗ ) = δx (a) · a∗ = {p ∈ TReg \{0}|hx, pi ∈ lf (a)} · a∗ =
{p ∈ TReg \{0}|hx, pi ∈ lf (a) · a∗ } = {p ∈ TReg \{0}|hx, pi ∈ lf (a a∗ )} = √
{p ∈ TReg \{0}|hx, pi ∈ lf (a∗ )}

Wir kommen zur Essenz dieser Arbeit, die wird im Theorem 5.1 abgebildet.
Das sagt, dass die Kardinalität der Menge von partiellen Ableitungen |δA ∗ (t)|
(so zu sagen, die Anzahl der Elementen in dieser Menge) ist gröser-gleich der
alphabetischen Breite vom Ausdruck t (der Anzahl von Buchstaben im t), die
als ||t|| bezeichnet wird. Und die Menge von allen syntaktisch-verschiedenen
partiellen Ableitungen vom t
PD(t) = δA ∗ (t)
ist endlich und hat eine obere Grenze der Kardinalität.
Theorem 51 Für einen beliebigen Ausdruck t ∈ TReg gelten folgende Ungle-
ichungen:
|δA + (t)| ≤ ||t|| (43)
|PD(t)| ≤ ||t|| + 1 (44)
12 K.Mironava

Beweis 52 Da PD(t) = δA ∗ (t) darf man schreiben:

PD(t) = δε (t) ∪ δA + (t),

weil A ∗ immer ein leeres Wort ε enthält. Dann aus der ersten Ungleichung folgt
die zweite ⇒ das ist genug nur |δA + (t)| ≤ ||t|| zu beweisen. Wir beweisen dieses
Theorem per Induktion.
1. t = 0:

|δA + (0)| = ∅ ≤ 0
2. t = ε:

|δA + (ε)| = ∅ ≤ 0
3. t = x, x ∈ A :

|δA + (x)| = ∅ ≤ 0
Nehmen wir nun an, dass |δA + (t)| ≤ ||t|| für a, b ∈ TReg gilt und betrachten drei
Unterfälle:
4a) t = a + b (t ist eine Vereinigung von zwei Ausdrücken a und b):
[ [
δA + (a + b) = δw (a + b) = (δw (a) ∪ δw (b) =
w∈A + w∈A +

wenden wir Vereinigung von Wörter in A + auf beiden Aussagen in Klammern


an =
δA + (a) ∪ δA + (b) ⇒
δA + (a+b) = |δA + (a)+δA + (b)| ≤ mit Rechenregel bei endlichen Kardinalitäten ≤
≤ |δA + (a)| + |δA + (b)| ≤ nach Ungleichung (43) ≤ ||a|| + ||b|| = ||a + b||
4b) t = a · b (t ist eine Konkatenation von zwei Ausdrücken a und b):
[ [ [
δA + (a·b) = δw (a·b) ⊆ (δw (a)·b∪ δv (b)) = wenden wir Vereinigung auf
w∈A + w∈A + v∈Suf (w)
[ [ [
beiden Seiten des Aussages in Klammern an = ( (δw (a)) ·b∪ δv (b) =
w∈A + w∈A + v∈Suf (w)
| {z } | {z }
1 2
S
- bei (1) verwenden wir Gleichung (35), bei (2) δw (b) = v∈Suf (w) δv (b), weil
S
nicht echtes Suffix von w ist gleich w ⇒ wir bekommen w∈A + δw (b) und mit
(35) δA + (b) -
δA + (a) · b ∪ δA + (b) ⇒
|δA + (a·b)| ≤ |δA + (a)·b∪δA + (b)| ≤ Rechenregeln bei endlichen Kardinalitäten ≤
|δA + (a) · b| + |δA + (b)| ≤
Ausarbeitung der Artikel von V.Antimirov 13

- da wir jetzt alles aus Kardinalitätssicht betrachten, darf man das Gleichzeichen
zwischen |δA + (a) · b| und |δA + (a)| stellen, weil sich die Anzahl von Ableitungen
bei der Konkatenation nicht ändert, sondern nur die Länge von jedem Element
-

⇒ |δA + (a)|+|δA + (b)| ≤ ||a||+||b|| = die Summe der Buchstaben von 2 Aussagen = ||a·b||

4c) t = a∗ (t ist das Ergebnis von der Kleene-Hülle Operation bezüglich a ):


[ [ [
δA + (a∗ ) = δw (a∗ ) ⊆ δv (a) ·a∗ = - da (1) hier ist gleich δw (a) ⇒
w∈A + w∈A + v∈Suf (w)
| {z }
1

- Verfahren wie in (2) oben = δA + (a) · a∗ ⇒

δA + (a∗ ) ≤ |δA + (a) · a∗ | =

- da Kleene-Hülle idempotent bezüglich einer n-Stelligen Verknüpfung ist ⇒

a2 = a ⇒ a∗ = a ⇒ δA + (a) · a∗ = δA + (a)-

⇒ |δA + (a) · a∗ | = δA + (a) ≤ ||a|| = ||a∗ ||

Folgerung 51 Für eine beliebige Menge von Wörter W ⊆ A ∗ , die Menge δW (t)
ist endlich und die folgende Ungleichung gilt:

|δW (t)| ≤ ||t|| + 1. (45)

Der Beweis folgt aus W ⊆ A ∗ ⇒ δW (t) ⊆ δA ∗ (t).

BEISPIEL:
Mit der Notation vom Beispiel 3.3 haben wir:

t = (ab + b)∗ ba

Die alphabetische Breite vom Ausdruck t ist gleich 5.

||t|| = 5 : a, b, b, b, a

|PD(t)| ≤ ||t|| + 1 = 5 + 1 = 6
⇒ eine obere Grenze der Kardinalität von PD(t) ist 6.
In unserem Fall die Menge von allen syntaktisch-verschiedenen partiellen Ableitun-
gen vom t : PD(t) ist gleich {t, a, b · t}
und die Kardinalität dieser Menge:

|PD(t)| = 3
.
14 K.Mironava

6 Finite Automatenkonstruktionen mit partiellen


Ableitungen
In diesem Abschnitt representiere ich einen Algorithmus, der einen regulären
Ausdruck t in einen nichtdeterministischen endlichen Automaten (NEA) mit
höchstens ||t|| + 1 Zuständen umwandelt. Folgendes Theorem beschreibt diese
Konstruktion. Darüber hinaus konstruiere ich einen nichtdeterministischer endlicher
Automaten, der die Sprache vom t aus Beipiel 3.3 akzeptiert. Dann im Abschnitt
6.2 transformiere ich den bekommenen NEA in einen deterministischen endlichen
Automaten (DEA).

6.1 Von regulären Ausdrücken zu kleinen NEA


Theorem 61 Gegeben ist einen regulären Ausdruck t über die Alphabet A . Sei
M ein Automat über A : M = PD(t), µo = t und die Übergangsfunktion τ ist
definiert wie folgt:
τ (p, x) = δx (p) (46)
für alle p ∈ PD(t), x ∈ A .
Die Menge von Endzuständen F ist definiert wie folgt:

F = {p ∈ PD(t)|o(p) = ε}

Also daraus folgt, dass ein Automat M = hM , τ, µ0 , F i die Sprache L (t) akzep-
tiert, wenn die Ausgabe ein leeres Wort ist: o(p) = ε.

Beweis 61 Aus τ (p, x) = δx (p) folgt

τ (p, w) = δw (p) (47)

für einen beliebigen Zustand p ∈ M und ein Wort w ∈ A ∗ . Überprüfen wir


nun, ob die Sprache LM (p), die vom Automaten M akzeptiert ist, gleich der
Sprache L (p) (eine Sprache (Menge) von allen partiellen Ableitungen) ist, mit
anderen Wörtern:
w ∈ L (p) ⇔ w ∈ LM (p) (48)
für beliebiges w ∈ A ∗ .
Und zwar wenn ein Wort in die Sprache der partiellen Ableitungen enthalten ist
w ∈ L (p), ⇒ dieses Wort wird vom Automaten gefunden und ⇒ die Ausgabe
P leeres Wort o(w p) = ε. Nach dem Satz 4.1 ist w ∈ L (p) äquivalent
−1
wird ein
zu o( δw (p)) = ε, weil die Ableitung vom t ist gleich der Summe von allen
seinen partiellen Ableitungen. Das bedeutet, dass L (p) vom M akzeptiert ist
oder mit anderen Wörtern, dass es mindestens eine partielle Ableitung in der
Menge δw (p) existiert, mit einem nicht leeren Wort als Ausgabe:

δw (p) ∩ F 6= ∅ (49)

δw (p) enthält den Zustand p, der ein Endzustand ist p ∈ F .


Von der anderen Seite, w ∈ LM (p) ist bei der Definition äquivalent zu τ (p, w) ∩
Ausarbeitung der Artikel von V.Antimirov 15

F 6= ∅, weil mathscrLM (p) ist die Sprache, die vom Automat anerkannt ist ⇒
sie enthält auf jeden Fall nur die Worte, die zur Ausgabe = ε, oder zu einem
Endzustand führen. ⇒ Das beweist die Gleichung w ∈ L (p) ⇔ w ∈ LM (p)
(48). Insbesondere, LM (µ0 ) ist vom M akzeptiert ist äquivalent zu L (t), weil t
immer ein Startzustand ist.

NEA-Konstruktion: Berechnen wir die Menge von Zuständen PD(t):

PD(t) = δA ∗ (t)

und eine Übergansfunktion τ .

DER ALGORITHMUS:

hPD 0 , ∆0 , τ0 i := h{t}, {t}, ∅i, (50)


τi+1 := τi ∪ {hp, x, qi|p ∈ ∆i ∧ hx, qi ∈ lf (p)}, (51)
[
∆i+1 := {q|hx, qi ∈ lf (p) ∧ q 6∈ PD i }, (52)
p∈∆i

PD i+1 := PD i ∪ ∆i+1 (53)


PD 0 steht für die Menge, die am Anfang nur einen Startzustand enthält, der
immer t ist, und dann sammelt alle weiteren Zustände;
τ hier representiert eine endliche Teilmenge M ×A ×M (Zustand → Buchstabe
des Übergangs → neuer Zustand);
∆0 ist eine Menge der neuen Ableitungen ⇒ am Anfang ∆0 = {t};
∆i+1 ist eine Menge, die besteht nur aus neuen partiellen Ableitungen. ”Neuen”
bedeutet, dass nur aus Ableitungen im Schritt i+1, und enthält keine bisherigen;
q ist ein neuer Zustand = eine neue Ableitung;
i = 0, 1, . . . .

Nach maximal ||t|| Iterationen (die Ableitung von t wird höchstens so viel
mal berechnet, wie Anzahl von Buchtaben im t ist) wird die Menge ∆i+1 leer,
dann PD i und τi+1 enthalten die benötigten Ergebnisse.

BEISPIEL:
hPD 0 , ∆0 , τ0 i := h{t}, {t}, ∅i = h{(ab + b)∗ ba}, {(ab + b)∗ ba}, ∅i
δa (t) = {b · t} und δb (t) = {t, a}.
τa1 = τa0 ∪ {hp, a, qi} = ∅ ∪ {(ab + b)∗ ba, a, b(ab + b)∗ ba} = {t, a, b · t}
| {z } | {z }
p q
hier p ∈ PD 0 und q = δa (t) = b · t.
τb11 = τb0 ∪ {hp, b, qi} = ∅ ∪ {(ab + b)∗ ba, b, (ab + b)∗ ba}
| {z } | {z }
p q
τb12 = τb0 ∪ {hp, b, qi} = ∅ ∪ {(ab + b)∗ ba, b, |{z}
a }
| {z }
p q
τb1 = τb11 ∪ τb12 = {(ab + b)∗ ba, b, (ab + b)∗ ba} ∪ {(ab + b)∗ ba, b, a} = {t, b, t} ∪
16 K.Mironava

{t, b, a}
∆1 = p∈∆0 {q} = {b(ab + b)∗ ba, (ab + b)∗ ba, a} = {b · t, t, a}
S
PD 1 = PD 0 ∪ ∆1 = {t} ∪ ∆1 = {(ab + b)∗ ba} ∪ {b(ab + b)∗ ba, (ab + b)∗ ba, a} =
{b(ab + b)∗ ba, (ab + b)∗ ba, a} = {b · t, t, a}
τa21 = τa1 ∪ {b(ab + b)∗ ba, a, |{z}
∅ }=
| {z }
p q
{(ab + b) ba, a, b(ab + b) ba} ∪ {b(ab + b)∗ ba, a, ∅}
∗ ∗

Das bedeutet, dass es keinen Übergang mit Buchstabe a vom b(ab + b)∗ ba Zus-
tand gibt.
τa22 = τa1 ∪ {|{z} ε } = {(ab + b)∗ ba, a, b(ab + b)∗ ba)} ∪ {a, a, ε} ⇒
a , a, |{z}
p q

Fig. 1. Nichtdeterministischer endlicher Automat (NEA)

τa2 = τa21 ∪ τa22 = {(ab + b)∗ ba, a, b(ab + b)∗ ba} ∪ {b(ab + b)∗ ba, a, ∅} ∪ {a, a, ε} =
= {t, a, b · t} ∪ {b · t, a, ∅} ∪ {a, a, ε}
τb21 = τb1 ∪ {b(ab + b)∗ ba, b, (ab + b)∗ ba} =
| {z } | {z }
p q
= {(ab + b)∗ ba, b, (ab + b)∗ ba} ∪ {(ab + b)∗ ba, b, a} ∪ {b(ab + b)∗ ba, b, (ab + b)∗ ba}
τb22 = τb1 ∪ {|{z} ∅ }=
a , b, |{z}
p q
= {(ab + b)∗ ba, b, (ab + b)∗ ba} ∪ {(ab + b)∗ ba, b, a} ∪ {a, b, ∅}
τb2 = τb21 ∪ τb22 = {t, b, t} ∪ {t, b, a} ∪ {b · t, b, t} ∪ {t, b, t} ∪ {t, b, a} ∪ {a, b, ∅} =
= {t, b,St} ∪ {t, b, a} ∪ {a, b, ∅} ∪ {b · t, b, t}
∆2 = p∈∆1 {q} = {ε, (ab + b)∗ ba} = {ε, t}
PD 2 = PD 1 ∪ ∆1 = {(ab + b)∗ ba, b(ab + b)∗ ba, a, ε} = {t, b · t, a, ε}

Jetzt benutzen wir die Menge PD 2 , um Zustände von unserm Automaten


zu bauen und die Übergangsfunktionen τa2 und τb2 , um die Pfeile zwichen
Zuständen hinzufügen. Also unser Algorithmus umwandelt den Ausdruck
(ab + b)∗ ba in den auf dem Bild 1 dargestellten nichtendlichen Automaten und
kann als eine Tabelle vorgestellt werden:

Zustände Ableitungen
1 := a · 2 + b · 1 + b · 3 1 = (ab + b)∗ ba
2 := b · 1 2 = b(ab + b)∗ ba
3 := a · 4 3=a
4 := ε 4=ε

6.2 Von regulären Ausdrücken zu DFA

Die NEA-Konstruktion, die oben beschrieben wurde, kann ganz einfach in einen
DEA transformiert werden. Die Gleichung (47) impliziert, dass die Menge δw (p)
Ausarbeitung der Artikel von V.Antimirov 17

einen ”deterministischen Zustand” darstellt, der dem Ergebnis aller möglichen


Übergänge vom Zustand p bezüglich des Wortes w entspricht. Das heißt, δw (p)
ist eine Menge von Zuständen, die alle möglichen Ableitungen von p bezüglich
w representieren. Das erlaubt uns zu schreiben: p = δw (p). Indem wir p in (46)
durch einen solchen deterministischen Zustand ersetzen, leiten wir die Gleichung
ab:
τ (p, x) = τ (δw (p), x) = δx (δw (p)) = δwx (p)
die die entsprechenden ”deterministischen Übergänge” definiert.
Daher muss die Menge:

DD(t) = {δw (t)|w ∈ A ∗ } (54)

als die Menge von Zuständen des DEA genommen werden, der Startzustand ist
t und die Übergangsfunktion wird definiert durch:

τ (P, x) = δx (P ) (55)

für alle P ∈ DD(t), x ∈ A . P representiert die Menge von partiellen Ableitungen


ähnlich wie ein Zustand von DEA die Menge der Zuständen von NEA represen-
tiert. Die Menge von Endzuständen ist:
X
F = {P ∈ DD(t)|o( P ) = ε} (56)

Also unser deterministiesche Automat hat die folgende Form:

hDD(t), τ, {t}, F i

BEISPIEL:
Da P = δw (t) und in unserem Beispiel
δw (t) = {b · t, t, a} = {b(ab + b)∗ ba, (ab + b)∗ ba, a} ⇒
ersetzen wir P in (55) durch δw (t) und berechnen die Übergangsfunktionen:
τ (P, a) = δa (P ) = δa (δw (t)) = δa ({b · t, t, a}) = {{∅}, {b · t}, {ε}}
τ (P, b) = δb (P ) = δb (δw (t)) = δb ({b · t, t, a}) = {{t}, {t, a}, {∅}}
In tabellarischer Form sieht es wie folgt aus:

Zustände Ableitungen
{1} := a · {2} + b · {1, 3} {1} = {(ab + b)∗ ba}
{2} := b · {1} {2} = {b(ab + b)∗ ba}
{1, 3} := a · {4} {1, 3} = {(ab + b)∗ ba, a}
{4} := {ε} {4} = {ε}
Der berechnete deterministische endliche Automat ist auf der folgenden Ab-
bildung 2 deutlich zu sehen.

Fig. 2. Deterministischer Endlicher Automat (DEA)


18 K.Mironava

7 Schlussbemerkung

Zusammenfassend kann man sagen, dass in der vorliegenden Arbeit eine Er-
weiterung der Arbeit von Brzozowski durch den neuen Begriff der partiellen
Ableitung eines regulären Ausdrucks vorgestellt ist. Wir haben diesen Begriff
konstruktiv definiert und bewiesen, dass er einige interessante Merkmale aufweist:

1. Partielle Ableitungen können einfach berechnet und effizient dargestellt


werden. Jede partielle Ableitung eines regulären Ausdrucks t ist entweder ε oder
eine Liste (von einer begrenzten Länge) der Komponenten von t.

2. Es gibt höchstens ||t||+1 syntaktisch-unterschiedlichen partiellen Ableitun-


gen von t. Das heißt, dass jede Wortableitung als endliche Summe der partiellen
Ableitungen dargestellt werden kann. Diese Beziehung ist ziemlich ähnlich wie
ein Zustand von DEA die Menge der Zuständen von NEA representiert.

3. Ein regulärer Ausdruck t kann in einen relativ kleinen NEA (und in


manchen Fällen wesentlich kleiner als durch anderen Algorithmen) umgewan-
delt werden, dessen Zustände (dargestellt durch) partielle Ableitungen von t
sind.
4. Die Effizienz des Brzozowski-Algorithmus zum Aufbau von DEA kann
durch die Darstellung von Ableitungen durch Mengen von partiellen Ableitungen
verbessert werden.

Das könnte Ihnen auch gefallen