Unterlagen zur Veranstaltung Einführung in die INFORMATIK IV

Werbung
Unterlagen zur Veranstaltung
Einführung in die INFORMATIK IV
Universität zu Lübeck
SS 2004
Prof. Dr. R. Reischuk
Institut für Theoretische Informatik
April 2004
2
Informatik IV, UzL SS2004
Empfohlene Lehrbücher
J. Hopcroft, R. Motwani, J. Ullman, Introduction to Automata Theory, Languages and Computation,
Addison Wesley, 2. Edition 2001,
deutsche Übersetzung: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie,
Addison Wesley 1994
M. Harrison, Introduction to Formal Language Theory, Addison Wesley 1978
J. Savage, Models of Computation, Addison Wesley 1998
U. Schöning, Logik für Informatiker, Spektrum Verlag 1995
R. Reischuk, Komplexitätstheorie Band I: Grundlagen, Teubner 1998
P. Sander, W. Stucky, R. Herschel, Automaten, Sprachen, Berechenbarkeit, Teubner 1992
T. Ottmann, P. Widmayer, Algorithmen und Datenstrukturen, Spektrum 2002
T. Cormen, C. Leiserson, R. Rivest, Introduction to Algorithms, MIT Press 1990
R. Reischuk, ITCS
0
3
Grundlagen der Logik
0.1
Aussagenlogik
Wir wiederholen zunächst kurz einige wichtige Begriffe aus der Logik.
Definition 0.1 Aussagenlogische Formeln
Sei P = {p1 , p2 , p3 , . . .} eine Menge von atomaren Prädikaten und ∧ , ∨ und ¬ binäre bzw. unäre
Operatoren zur Verknüpfung von Prädikaten. Die Menge der aussagenlogischen Formeln wird induktiv
definiert durch:
• Jedes atomare Prädikat pi ∈ P ist eine aussagenlogische Formel.
• Für alle Formeln F und G sind auch (F ∧ G) und (F ∨ G) Formeln.
• Für jede Formel F ist auch (¬F ) eine Formel.
Ist p ein atomares Prädikat, so heißen p und ¬p Literale. Für ¬p verwenden wir im folgenden auch
die Notation p0 ; entsprechend sei dann p1 := p .
Für eine Teilmenge D ⊆ P bezeichnet F (D) die Menge der Formeln über den Prädikaten in D .
Ein Monom ist eine ∧ -Verknüfung von Literalen M = pa1 1 ∧ . . . ∧ pa` ` , eine Klausel eine ∨ -Verknüfung
K = pa1 1 ∨ . . . ∨ pa` ` . Die Anzahl ` von Literalen nennen wir auch die Länge des Monoms bzw. der
Klausel. Eine Formel ist in konjunktiver Normalform (CNF), falls sie aus einer ∧ -Verknüfung von
Klauseln besteht. Haben alle Klauseln die Länge ` , so bezeichnet man dies als ` -CNF. Die disjunktive
Normalform (DNF) ist eine ∨ -Verknüfung von Monomen.
2
Wie wir gleich sehen werden, sind die Operatoren ∨ und ∧ assoziativ, d.h. auf eine Klammerung der Literale in einem Monom oder einer Klausel kann verzichtet werden. Wir verwenden folgende Abkürzungen
für spezielle Verknüpfungen von Formeln:
• F → G
steht für
(¬F ) ∨ G ,
• F ↔ G
steht für
(F ∧ G) ∨ (¬F ∧ ¬G) .
• F
steht für
(F ∧ ¬G) ∨ (¬F ∧ G) .
⊕ G
Definition 0.2 Semantik aussagenlogischer Formeln
Die Elemente der Menge {0, 1} heißen Wahrheitswerte, auch mit false und true bezeichnet. Für
D ⊆ P sei Φ : D → {0, 1} eine Belegung der atomaren Prädikate mit Wahrheitswerten. Wir erweitern
Φ zu einer Funktion Φ̂ auf F(D) durch:
• Für jede atomare Formel F ∈ D sei Φ̂(F ) := Φ(F ) .
•
Φ̂(¬F ) :=
1
0
falls
sonst.
Φ̂(F ) = 0 ,
•
1
0
falls
sonst.
Φ̂(F ) = 1
und
Φ̂(G) = 1 ,
1
0
falls
sonst.
Φ̂(F ) = 1
oder
Φ̂(G) = 1 ,
Φ̂(F ∧ G) :=
•
Φ̂(F ∨ G) :=
Wir vereinbaren noch, daß die leere Klausel t , d.h. eine Klausel der Länge 0 , den Wahrheitswert
false besitzt, ein leeres Monom dagegen den Wahrheitswert true.
2
4
Informatik IV, UzL SS2004
Da Φ̂ eine Erweiterung von Φ ist, schreiben wir von nun an immer Φ (die Unterscheidung war nur zum
Zweck einer sauberen formalen Definition notwendig). Wir betrachten hier nur die 2-wertige StandardLogik. Darüber hinaus sind auch andere Modelle denkbar, etwa eine 3-wertige Logik mit dem zusätzlichen
Wert vielleicht oder noch weitere Verallgemeinerungen wie etwa die Fuzzy-Logik, bei der jedes Prädikat
einen unterschiedlichen Grad von Wahrheit besitzen kann.
Definition 0.3 Modell, erfüllbar, allgemeingültig, unerfüllbar
Eine Belegung Φ mit Φ(F ) = 1 heißt erfüllende Belegung oder Modell für F , Notation hierfür:
Φ |= F .
Eine Formel F heißt erfüllbar, wenn F ein Modell besitzt.
F heißt allgemeingültig oder Tautologie, wenn jede Belegung ein Modell für F ist, Notation:
|= F .
F heißt unerfüllbar, wenn es kein Modell für F gibt.
2
Semantische Implikation und Äquivalenz logischer Formeln ist folgendermaßen definiert.
Definition 0.4 Logische Implikation und Äquivalenz
Eine aussagenlogische Formel F impliziert eine Formel G , man sagt dann auch G folgt logisch aus
F , wenn jedes Modell für F auch ein Modell für G ist; hierfür verwenden wir die Notation
F =⇒ G .
F und G heißen logisch äquivalent oder auch semantisch äquivalent, wenn für alle Belegungen Φ
gilt: Φ(F ) = Φ(G) , Notation:
F ≡G
oder auch
F ⇐⇒ G .
2
Im folgenden sind die wichtigsten Regeln aufgelistet, wie man Boolesche Formeln F, G, H, T, U in semantisch äquivalente transformieren kann.
Definition 0.5 Rechenregeln der Aussagenlogik
(F ∧ F ) ≡ F
(F ∨ F ) ≡ F
Idempotenz
(F ∧ G) ≡ (G ∧ F )
(F ∨ G) ≡ (G ∨ F )
Kommutativität
((F ∧ G) ∧ H) ≡ (F ∧ (G ∧ H))
((F ∨ G) ∨ H) ≡ (F ∨ (G ∨ H))
Assoziativität
(F ∧ (F ∨ G)) ≡ F
(F ∨ (F ∧ G)) ≡ F
Absorption
(F ∧ (G ∨ H)) ≡ ((F ∧ G) ∨ (F ∧ H))
(F ∨ (G ∧ H)) ≡ ((F ∨ G) ∧ (F ∨ H))
Distributivität
¬ (¬F ) ≡ F
¬(F ∧ G) ≡ (¬F ∨ ¬G)
¬(F ∨ G) ≡ (¬F ∧ ¬G)
Doppelnegation
deMorgansche Regeln
Ist T eine Tautologie und U eine unerfüllbare Formel, so gelten außerdem:
R. Reischuk, ITCS
5
(T ∨ G) ≡ T
(T ∧ G) ≡ G
(F ∨ ¬F ) ≡ true
Tautologieregeln
(U ∨ G) ≡ G,
(U ∧ G) ≡ U ,
(F ∧ ¬F ) ≡ false
Unerfüllbarkeitsregeln
Beispiel 0.1
((A ∨ (B ∨ C)) ∧ (C ∨ ¬A)) ≡ ((B ∧ ¬A) ∨ C)
Die linke Seite läßt sich auf folgende Weise in die rechte transformieren:
((A ∨ (B ∨ C)) ∧ (C ∨ ¬A))
≡
(((A ∨ B) ∨ C) ∧ (C ∨ ¬A))
≡
((C ∨ (A ∨ B)) ∧ (C ∨ ¬A))
≡
(C ∨ ((A ∨ B) ∧ ¬A))
≡
(C ∨ (¬A ∧ (A ∨ B))
≡
(C ∨ ((¬A ∧ A) ∨ (¬A ∧ B))
≡
(C ∨ (¬A ∧ B)
≡
(C ∨ (B ∧ ¬A)
≡
((B ∧ ¬A) ∨ C).
0.2
Prädikatenlogik
Die Aussagenlogik benutzt nur atomare Prädikate, die durch Boolesche Operatoren verknüpft werden
können. Bei der Frage der Erfüllbarkeit einer solchen Formel haben wir die atomaren Prädikate als
Boolesche Variable interpretiert.
Die Prädikatenlogik 1. Stufe, eine Verallgemeinerung der Aussagenlogik, verwendet zusätzlich Variable,
die Werte aus einem beliebigen Universum U (z.B. IN oder IR ) annehmen können und über die quantifiziert werden kann. Zusätzlich können wir Funktionen über U verwenden.
Definition 0.6 Syntax
Gegeben sei ein ein Alphabet Σ , welches in die folgenden paarweise disjunkten Mengen von Symbolen
(auch Zeichen genannt) unterteilt ist:
• eine Menge V = { u, v, w, x, y, . . . } von Variablen,
• eine Menge F = { f, g, h, . . . } von Funktionssymbolen,
• eine Menge Π = { P, Q, R, . . . } von Prädikatssymbolen,
• Konnektoren ¬, ∧ , ∨ ,
• Quantoren ∀, ∃ ,
• Hilfszeichen (, ), [, ] .
Eine Signatur ist eine Abbildung α : F ∪ Π −→ IN , die den Funktions- und Prädikatssymbolen des
Alphabets Σ eine Stelligkeit (die Anzahl der Argumente) zuordnet. Für n ∈ IN bezeichnet
• F n := { f ∈ F | α(f ) = n } die Menge der n -stelligen Funktionszeichen und
•
Π n := { p ∈ Π | α(p) = n } die Menge der n -stelligen Prädikatszeichen.
Ein nullstelliges Prädikatszeichen p ∈ Π0 heißt auch Aussagenvariable, während nullstellige Funktionssymbole Konstanten genannt werden, die wir mit a, b, c, . . . bezeichnen.
Die Menge T der Terme über V ∪ F ist induktiv definiert durch:
6
Informatik IV, UzL SS2004
• Jedes Element aus V ∪ F 0 ist ein Term.
• Für f ∈ F n mit n ≥ 1 und Terme t1 , . . . , tn ist auch f (t1 , . . . , tn ) ein Term.
Für p ∈ Πn und Terme t1 , . . . , tn heißt p(t1 , . . . , tn ) atomare Formel oder Atom.
Die Menge der prädikatenlogische Formel über Σ , PFΣ wird induktiv wie folgt konstruiert:
• Jede atomare Formel p gehört zu PFΣ . Die Variablen, die in p vorkommen, heißen freie Variablen.
• Sind F, G prädikatenlogische Formeln und x eine Variable, dann sind auch (F ∧ G) , (F ∨ G) ,
(¬F ) sowie (∀x F ) und (∃x F ) Formeln.
• Ist G = . . . (Q x H) . . . eine prädikatenlogische Formel mit einer quantifizierten Teilformel
(Q x H) , wobei Q ∈ {∃, ∀} , dann heißt der Bereich von H , der verbleibt, wenn Subformeln
der Gestalt (Q0 x H 0 ) aus H entfernt werden, der Bindungsbereich von Qx . Eine Variable x
heißt gebunden, wenn sie im Bindungsbereich eines Quantors liegt, andernfalls frei.
Eine prädikatenlogische Formel ohne freie Variable heißt geschlossen.
2
Betrachten wir beispielsweise die Formel
∀ x[ F (x) ∨ ((∃ yG(y)) ∧ (∃ z H(x, y, z))) ] ,
so ist die einzig freie Variable das 2. Auftreten von y in der Teilformel H .
Definition 0.7 Semantik
Eine Struktur ist ein Paar A = ( UA , IA ) , wobei UA eine beliebige nichtleere Menge ist, die die
Grundmenge von A oder das Universum genannt wird. IA beschreibt eine Abbildung (Interpretation)
definiert auf einer Teilmenge V 0 ∪ Π 0 ∪ F 0 ⊆ V ∪ Π ∪ F , die
• jedem k -stelligen Prädikatssymbol p ∈ Π 0 ein k -stelliges Prädikat pA = IA (p) über UA ,
• jedem k -stelligen Funktionssymbol f ∈ F 0 eine k -stellige Funktion f A = IA (f ) auf UA und
• jeder Variablen x ∈ V 0 ein Element xA = IA (x) aus der Grundmenge UA zuordnet.
Sei F eine Formel und A eine zu F passende Struktur. Für jeden Term t , der in F vorkommt, ist der
Wert A(t) von t in der Struktur A wie folgt definiert:
• Falls t eine Variable ist, so sei A(t) := xA .
• Falls t die Form t = f (t1 , . . . , tk ) hat mit Termen t1 , . . . , tk und einem k -stelliges Funktionssymbol f , so ist A(t) := f A (A(t1 ), . . . , A(tk )) .
Damit können wir den Wahrheitswert A(F ) von F unter der Struktur A wie folgt definieren:
• Falls F die Form F = p(t1 , . . . , tk ) hat für Terme t1 , . . . , tk und p ein k -stelliges Funktionssymbol, so ist
1 falls pA (A(t1 ), . . . , A(tk )) = 1 ,
A(F ) :=
0 sonst.
• Falls F die Form ¬G , (G ∧ H) oder (G ∨ H) besitzt, so verfahren wir analog zur Semantik
der Aussagenlogik.
• Falls F = ∀x G , so sei
A(F ) :=
1
0
falls für alle a ∈ UA gilt: A(G[x:=a] ) = 1 ,
sonst,
.
wobei G[x:=a] aus G entsteht, indem alle Vorkommnisse von x im Bindungsbereich von ∀ x durch
die Konstante a ersetzt werden.
R. Reischuk, ITCS
7
• Falls F = ∃x G , so sei
A(F ) =
1 falls es ein a ∈ UA gibt mit: A(G[x:=a] ) = 1 ,
0 sonst.
.
Kommt eine Variable x nicht frei in der Formel G vor, so macht eine Quantifizierung ∀x G oder
∃x G offensichtlich keinen Sinn. Man kann das Problem des Bindungsbereichs eines Quantors dadurch
entschärfen, daß verlangt wird, daß alle Vorkommnisse von x in G frei sind, mit anderen Worten, x
darf innerhalb von G an keiner Stelle bereits durch Quantoren gebunden sein. Dies kann gegebenenfalls
durch Umbennung der Variablen erreicht werden. Formeln, bei denen jedes Variablensymbol höchstens
einmal mit einem Quantor kombiniert wird, sind leichter lesbar. Eine besonders einfache Darstellung ist
die Pränex-Normalform, bei der alle Quantoren am Anfang der Formel stehen. Allerdings würden diese
Einschränkungen die Definition der Menge aller prädikatenlogischer Formeln verkomplizieren.
Beispiel 0.2 Äquivalenzen in der Prädikatenlogik
Es seien F und G beliebige prädikatenlogische Formeln. Dann sind unter anderem folgende Umformungen zulässig.
1. Alle für die Aussagenlogik bewiesenen Äquivalenzen gelten auch in der Prädikatenlogik.
2.
¬(∀x F )
≡
∃x (¬F )
¬(∃x F )
≡
∀x (¬F )
3. Falls x in G nicht frei vorkommt, gelten die Umformungen:
4.
5.
(∀x F ) ∧ G
≡
∀x (F ∧ G)
(∀x F ) ∨ G
≡
∀x (F ∨ G)
(∃x F ) ∧ G
≡
∃x (F ∧ G)
(∃x F ) ∨ G
≡
∃x (F ∨ G)
(∀x F ) ∧ (∀x G)
≡
∀x (F ∧ G)
(∃x F ) ∨ (∃x G)
≡
∃x (F ∨ G)
∀x (∀y F )
≡
∀y (∀x F )
∃x (∃y F )
≡
∃y (∃x F )
Quantoren haben höhere Priorität als die Booleschen Operatoren, so daß man oftmals auf Klammern
verzichten kann. Bei gleichen Quantoren, die aufeinanerfolgen, wird auch die verkürzte Schreibweise
Q x y z F anstelle von Q x Q y Q z F = Q x (Q y (Q z F )) verwendet. Folgende Transformationen sind im allgemeinen nicht korrekt:
(∃x F ) ∧ (∃x G)
6≡
∃x (F ∧ G)
∃x (∀y F )
6≡
∀y (∃x F )
Von Interesse sind auch Einschränkungen sowie Erweiterungen dieses prädikatenlogischen Formalismus.
• Die Monadische Prädikatenlogik verwendet nur 1-stellige Prädikatssymbole und keinerler Funktionssymbole.
• Die Prädikatenlogik der 2. Stufe erlaubt eine Quantifizierung auch über Prädikats- und Funktionssymbole.
8
1
Informatik IV, UzL SS2004
Formale Sprachen und Automaten
Wir wollen nun als Grundlage für die Beschreibung von Ein- und Ausgaben beliebige endliche Alphabete
betrachten. Grundlage ist also ein endliches Alphabet Σ , etwa das binäre; Datenelemente werden dann
als eine Folge von Zeichen aus Σ dargestellt.
1.1
Notation
Eine endliche Menge Σ von Symbolen nennt man ein Alphabet. Mit β bezeichnen wir ein besonderes
Symbol, das Blanksymbol. Ein String (Zeichenkette, Wort) über einem Alphabet Σ ist eine Folge
X = x1 x2 . . . xn von Elementen aus Σ ; n nennen wir die Länge von X , welche wir auch mit |X|
notieren. λ bezeichne den leeren String der Länge 0. Eine Teilfolge Y = x1 x2 . . . xm mit m ≤ n heißt
Präfix von X . Mit
Σ∗ , Σn und Σ≤n
seien die Mengen der endlichen Strings bzw. der Länge n bzw. der Länge höchstens n bezeichnet. Eine
Teilmenge von Σ∗ heißt Sprache (über Σ ).
Sind v, w Strings, v = v1 . . . vn und w = w1 . . . wm , so bezeichne vw := v1 . . . vn w1 . . . wm den String,
der durch Aneinanderhängen (Konkatenation) der beiden Strings entsteht. Für Sprachen L und L1 , L2
sei ihr Produkt definiert als
L1 ◦ L2
:= {vw | v ∈ L1 , w ∈ L2 }.
Oftmals verzichtet man darauf, den Produktoperator ◦ explizit hinzuschreiben, und notiert das Produkt
als L1 L2 .
L∗ := {v (1) . . . v (k) | k ∈ IN, v (i) ∈ L}
bezeichnet die Menge aller Worte, die sich durch Aneinanderhängen endlich vieler Worte aus L bilden
lassen, Sternoperation oder auch der Kleensche Abschluß genannt. v rev := vn . . . v1 bezeichne das
Spiegelbild von v und
Lrev := {wrev | w ∈ L} .
Um Manipulationen von Zeichenketten durchzuführen – man verwendet in diesem Zusammenhang auch
den Begriff Termersetzung, erweisen sich Rechnermodelle wie die Turing Maschine (TM), die
wir später noch genauer betrachten werden, als ein sehr gut geeignetes Modell. Im folgenden sollen
zunächstVereinfachungen von TM, die endlichen Automaten betrachtet und deren Berechnungsfähigkeiten untersucht werden.
Ein anderer Formalismus, um Zeichenketten zu generieren, basiert auf Grammatiken, mit denen wir
beginnen wollen. Der Linguist Noam Chomsky hat in Anlehnung an natürliche Sprachen und ihre
Grammatiken den Begriff der formalen Grammatik entwickelt. Formale Grammatiken bilden die Grundlage beim Entwurf und der Syntaxanalyse höherer Programmiersprachen.
1.2
Sprachen und Grammatiken
Definition 1.1 Eine formale Grammatik G wird beschrieben durch ein Tupel (Σ, ΣT , σ0 , Π) . Dabei
bezeichnet Σ ein Alphabet und ΣT ⊆ Σ eine Teilmenge von Terminalsymbolen. ΣN := Σ \ ΣT
bildet die Menge der Nichtterminalsymbole, und σ0 ∈ ΣN ist ein ausgezeichnetes Element, das
Startsymbol. Schließlich ist Π eine endliche Menge von Ableitungsregeln (Produktionen)
ϕ1 → ϕ 2 ,
R. Reischuk, ITCS
9
wobei die ϕi Strings über dem Alphabet Σ sind und ϕ1 mindestens ein Nichtterminalsymbol enthält,
d.h. ϕ1 ∈ Σ∗ ΣN Σ∗ und ϕ2 ∈ Σ∗ . Die Ableitungsregeln erzeugen eine Relation ` auf Σ∗ × Σ∗ durch
ψ1 ` ψ2
falls ψi = a ϕi b
mit
a, ϕi , b ∈ Σ∗
und
ϕ1 → ϕ2 ∈ Π .
`∗ sei der transitive Abschluß dieser Relation. Dann heißt
L(G)
:= {X | X ∈ Σ∗T , σ0 `∗ X}
die durch die Grammatik G erzeugte formale Sprache. Die Strings ψ ∈ Σ∗ mit σ0 `∗ ψ bilden die
Satzformen von G .
Um zwischen Terminal- und Nichtterminalsymbolen unterscheiden zu können, werden wir im folgenden
Nichtterminale in der Regel mit großen Buchstaben A, B, C, D, . . . aus dem Beginn des Alphabetes
bezeichnen, Terminale dagegen mit kleinen Buchstaben a, b, c, . . . . Für Strings verwenden wir in der
Regel griechische Buchstaben. Taucht auf der linken Seite der Produktionen ein String ϕ1 mehrfach auf
( ϕ1 → ϕ2 und ϕ1 → ϕ02 , ϕ1 → . . . ), so notieren wir dies auch in kompakterer Form
ϕ1 → ϕ2 | ϕ02 | . . . .
ϕ1 kann alternativ durch den String ϕ2 , durch ϕ02 oder . . . ersetzt werden.
Beispiel 1.1 Die Grammatik G1 mit Terminalalphabet ΣT = {a, b} , dem Startsymbol σ0 als einzigem
Nichtterminal und Produktionen σ0 → aσ0 b | λ erzeugt alle Worte der Form an bn mit n ∈ IN .
Die Grammatik G2 mit Produktionen σ0 → aσ0 a | bσ0 b | a | b | λ erzeugt die Sprache der Palindrome,
d.h. alle Worte w über dem Alphabet {a, b} mit der Eigenschaft wrev = w . Palindrome gerader Länge
besitzen eine Faktorisierung X = u urev für einen geeigneten Präfix u .
Von ähnlicher Struktur ist die Sprache der Quadrate, Strings der Form X = u u , auch COPYSprache genannt. Die Grammatik G3 zur Erzeugung dieser Sprache verwendet an zusätzlichen Nichtterminalen die Symbole Na , Nb und besteht aus folgenden Produktionen, wobei x, y ∈ {a, b} :
σ0
Nx y
Nx σ0
→ x N x σ0 | λ ,
→ y Nx ,
→ σ0 x .
Die Grammatiken G1 und G2 sind sehr einfach, da wir als einziges Nichtterminal das Startysmbol
verwenden und nur dies allein auf der linken Seite einer Ableitung erscheint. Derartig einfache Produktionen genügen für viele formale Sprachen wie beispielsweise die COPY-Sprache nicht. Man kann jedoch
die Ableitungsregeln ϕ1 → ϕ2 vereinfachen und auf gewisse Normalformen beschränken:
i) ϕ1 ∈ Σ+
N , d.h. nur Nichtterminale dürfen ersetzt werden – man nennt dies auch eine Grammatik vom
Typ 0,
ii) ϕ1 = γAδ und ϕ2 = γuδ , wobei γ, δ, u ∈ Σ∗ und A ∈ ΣN , die kontextsensitive Normalform.
Der Name im Fall β) rührt daher, daß das Nichtterminalsymbol A im Kontext γ δ durch den String u
ersetzt werden kann. Beide Normalformen stellen keine Einschränkung dar, da man zu jeder Grammatik
G eine äquivalente Grammatik G0 in der entsprechenden Form finden kann, d.h. L(G) = L(G0 ) . Im
ersten Fall gelingt dies etwa durch eine Alphabeterweiterung: Wir konstruieren ein neues Alphabet Σ0 ,
welches für jedes σ ∈ Σ ein Nichtterminal σ 0 enthält sowie alle σ ∈ ΣT . In jeder Produktion werden alle
Symbole σ durch ihr Äquivalent σ 0 ersetzt und zusätzlich fügen wir noch die Ableitungsregeln σ 0 → σ
für σ ∈ ΣT hinzu.
10
Informatik IV, UzL SS2004
Ableitungen, die nur wenige Nichtterminale A, B, . . . verwenden, klassifiziert man folgendermaßen:
verlängernd: A → B C , verkürzend: A B → C ,
terminierend: A → a mit a ∈ ΣT , löschend: A → λ ,
kontextverändernd: A B → C D ,
linkskontextsensitiv: A B → A D , rechtskontextsensitiv: A B → C B .
Beispiel 1.2 Die Grammatik G4 ist gegeben durch ΣT = {a, b, c} , ΣN = {σ0 , A, B} und Produktionen
σ0 → aσ0 A | aB , BA → bBc , cA → Ac und B → bc . Sie erzeugt alle Worte der Form an bn cn
mit n ≥ 1 .
Das universelle Ableitungsproblem, auch Wort- oder Membership-Problem genannt,
• gegeben eine beliebige Grammatik G vom Typ 0 und einen String X , entscheide, ob X ∈ L(G) ,
ist algorithmisch nicht lösbar.
Definition 1.2 Eine Ableitungsregel ϕ1 → ϕ2 heißt verkürzend, falls |ϕ1 | > |ϕ2 | . Eine formale Grammatik ohne verkürzende Ableitungsregeln heißt nichtverkürzend. Sie heißt kontextsensitiv
oder vom Typ 1, falls alle Produktionen die kontextsensitive Normalformbedingung erfüllen und nichtverkürzend sind, d.h. es gilt die obige Restriktion β) mit u 6= λ .
Die Menge der Sprachen, die durch kontextsensitive Grammatiken erzeugt werden können, bildet die
Klasse der kontextsensitiven Sprachen, CSL , auch Typ-1-Sprachen genannt.
Man beachte, daß bei kontextsensitiven Sprachen die Eigenschaft nichtverkürzend die entscheidende ist,
nicht die kontextsensitive Normalformbedingung – auf letztere könnte man sogar verzichten. Für Typ 0
Grammatiken, die verkürzende Produktionen besitzen können, ist es wesentlich, daß eine Ableitung für ein
Wort w in ihren Zwischenschritten Worte erheblich größerer Länge als |w| erzeugen kann. Ein analoges
Phänomen bei TM zeigt sich beim Busy-Beaver-Problem, wo eine TM mit einer fest vorgegebenen
Anzahl von Zuständen möglichst viele Einsen auf ihr Band schreiben und dann anhalten soll. Solch eine
Maschine wird in der Regel zusätzliche Speicherzellen betreten, auch wenn sie später darauf keine Eins
ausgibt.
Bei einer nichtverkürzenden Grammatik G über dem Alphabet Σ ist für jedes Wort X ∈ L(G) die
Zahl (|Σ| + 1)|X|+1 eine obere Schranke für die Länge einer Ableitung, um X zu erzeugen. Also kann zu
gegebenem X durch Testen aller möglichen Ableitungen bis zu dieser Länge in endlich vielen Schritten
entschieden werden, ob X ∈ L(G) . Kontextsensitive Sprachen sind somit rekursiv.
Schränkt man die Form der Ableitungsregeln noch mehr ein, so erhält man weitere Teilklassen von
Sprachen, die insbesondere für die Entwicklung von Programmiersprachen wichtige Bedeutung erlangt
haben.
Definition 1.3 Eine kontextfreie Grammatik besitzt nur Regeln ϕ1 → ϕ2 der Form ϕ1 ∈ ΣN und
ϕ2 ∈ Σ∗ – ein Nichtterminalsymbol ϕ1 kann unabhängig vom Kontext durch den String ϕ2 ersetzt
werden. Entsprechend heißen die so erzeugten Sprachen kontextfrei, CF L oder auch vom Typ 2.
Kontextfreie Grammatiken können durch Syntaxdiagramme auch grafisch beschrieben werden. Bei nichtkontextfreien Grammatiken kann man oftmals bei einem Wort X ∈ Σ∗ , das sich aus dem Startsymbol
ableiten läßt, an verschiedenen Stellen eine Produktionsregel anwenden. Auf das Wort X = abσcd etwa
kann sowohl π1 = bσ → bσf als auch π2 = σc → bσgc angewendet werden. Die Reihenfolge ist dabei
von Bedeutung, da unter Umständen das Anwenden einer bestimmten Regel verhindert, das eine weitere
noch möglich ist. Im obigen Fall schließt π1 das spätere Anwenden von π2 aus, umgekehrt gilt dies
nicht.
R. Reischuk, ITCS
11
Kontextfreie Grammatiken verhalten sich dagegen kommutativ bezüglich der Anwendung von Regeln. Da
nur einzelne Nichtterminale ersetzt werden, spielt es keine Rolle, welches Nichtterminal zuerst ersetzt wird.
Wir können daher eine Standardreihenfolge vorgeben etwa derart, daß immer das erste Nichtterminal
(von links nach rechts gelesen) auch als erstes ersetzt wird. Auf diese Weise kann man die Ableitung eines
Wortes auch in Form eines Ableitungsbaumes beschreiben. Die Standardreihenfolge entspricht dann einer
linkslastigen Traversierung des Baumes.
Die oben angegebene Grammatik für die Palindrome ist kontextfrei und damit auch die Palindromsprache.
Die COPY-Sprache dagegen kann nicht durch kontextfreie Grammatiken erzeugt werden, was wir später
noch beweisen werden. Für COPY sind kontextsensitive Grammatiken erforderlich.
Den Abschluß dieser Klassifizierung formaler Grammatiken und Sprachen, die nach ihrem Begründer
Chomsky-Hierarchie genannt wird, bilden die regulären Grammatiken.
Definition 1.4 Eine Grammatik heißt regulär oder auch vom Typ 3, falls jede Ableitung ϕ1 → ϕ2 ∈ Π
von der Form ϕ1 ∈ ΣN und ϕ2 ∈ Σ∗T ∪ Σ∗T ΣN ist. Jedes Nichtterminalsymbol erzeugt somit eine
Folge von Terminalsymbolen, an dessen Ende ein Nichtterminalsymbol angefügt sein kann. Derartige
Grammatiken erzeugen die regulären Sprachen REG .
Wir stellen diese Definitionen noch einmal in der folgenden Tabelle gegenüber, wobei auch eine Charakterisierung der Sprachklassen durch Maschinenmodelle aufgeführt ist. Diese Modelle werden im folgenden
noch genauer vorgestellt. Hierbei bezeichnet LIN-Space NTM eine nichtdeterministische TM, die nur auf
dem Bereich ihres Bandes arbeitet, auf dem die Eingabe steht (der von der NTM benutzte Speicherplatz
ist linear in der Länge der Eingabe beschränkt). Ein Pushdown-Automat ist eine NTM, die als Speicher
nur einen Stack zur Verfügung hat, während man einen endlichen Automaten als eine TM ohne Speicher
ansehen kann.
Grammatik
Sprachklasse
Maschinenmodell
(0)
(1)
(2)
(3)
RE
CSL
CFL
REG
DTM oder NTM
LIN-Space NTM
ohne Einschränkung, alternativ Typ 0
nichtverkürzend, alternativ kontextsensitiv
kontextfrei
regulär
Pushdown-Automat
endlicher Automat
Tabelle 1: Die Chomsky-Hierarchie
Um das leere Wort abzuleiten, benötigt man eine Produktion der Form ϕ → λ . Will man bei der Definition der kontextsensitiven Sprachen das leere Wort nicht ausschließen, ohne die Sprachklasse ansonsten
zu vergrößeren, kann dies etwa dadurch erreicht werden, daß man als einzige nichtverkürzende Ableitung
σ0 → λ zuläßt, aber verbietet, daß das Startsymbol σ0 auf der rechten Seite einer Produktion verwandt
wird. Darüberhinaus kann man zeigen, daß es bei kontextfreien und regulären Grammatiken keine Einschränkung darstellt, wenn σ0 → λ die einzig zulässige verkürzende Ableitung ist. Daraus folgt dann
sofort, daß jede Klasse in den vorhergehenden enthalten ist. Wir werden noch sehen, daß diese Inklusionen
echt sind:
REG ⊂ CFL ⊂ CSL ⊂ RE .
In der Definition der letzten Klasse fällt eine gewisse Asymmetrie auf. Man nennt die Grammatiken
vom Typ 3 auch rechts-linear. Falls man die Bedingung ϕ2 = γB mit γ ∈ Σ∗T und B ∈ ΣN durch
ϕ2 = Bγ ersetzt, erhält man die links-linearen Grammatiken, die ebenfalls die regulären Sprachen
erzeugen. Warum wir zur Definition von regulär die rechts-linearen Grammatiken bevorzugen, wird später
noch verständlich werden.
12
Informatik IV, UzL SS2004
Eine lineare Grammatik enthält neben Produktionen A → γ Produktionen der Form A → γBδ , wobei
A, B ∈ ΣN und γ, δ ∈ Σ∗T , d.h. auch hier besitzt jedes abgeleitete Wort maximal ein Nichtterminal und
damit kann eine Ableitung immer nur an einer eindeutigen Stelle fortgesetzt werden. Das Beispiel der
Palindrome zeigt, daß diese bereits durch eine lineare Grammatik erzeugt werden können. Man kann
sich jedoch leicht davon überzeugen, daß Palindrome weder durch eine rechts- noch eine linkslineare
Grammatik erzeugt werden können, denn für ein Wort w = u urev müßte nach Generierung des Präfixes
u in der Form u σ in dem Nichtterminal σ die gesamte Information über u gespeichert sein, ansonsten
könnte nicht der einzig zulässige Suffix urev gleicher Länge angefügt werden.
Die Sprachklassen der Chomsky-Hierarchie sind unter gewissen einfachen Operationen abgeschlossen. Es
sollte unmittelbar klar sein, daß man aus zwei Grammatiken G1 , G2 für Sprachen L1 , L2 eine Grammatik
G für die Vereinigung L1 ∪ L2 konstruieren kann. Dazu genügt linearer Zeitaufwand gemessen bezüglich
der Größe der Gi , d.h. Mächtigkeit des Alphabetes und Anzahl der Produktionen.
Theorem 1.1 Sind G1 , G2 zwei Grammatiken vom Typ τ ∈ [0..3] mit den zugehörigen Sprachen
L(G1 ), L(G2 ) , so sind auch L(G1 ) ∪ L(G2 ) , L(G1 ) ◦ L(G2 ) , L(G1 )∗ und Lrev Sprachen dieses Typs.
Für die Durchschnittsoperation L(G1 ) ∩ L(G2 ) ist diese Eigenschaft nicht mehr so offensichtlich, für
das Komplement L(G1 ) := Σ∗T \ L(G1 ) fraglich. Denn man kann nicht in analoger Weise wie bei der
Vereinigung aus G1 und G2 auf simple Weise eine Grammatik für den Durchschnitt generieren. Für die
Klasse der Sprachen vom Typ 0 zumindest folgt aus der Äquivalenz mit RE , daß der Abschluß unter
Durchschnitt gilt, der unter Komplementbildung dagegen nicht erfüllt ist. Für kontextfreie und reguläre
Grammatiken werden wir diese Frage im folgenden genauer untersuchen.
Neben dem Membership-Problem gibt es eine Reihe weiterer Entscheidungsprobleme, die man für formale
Grammatiken von Interesse sind, unter anderem
• Leerheit und Nichttrivialität: die Frage, ob für eine Grammatik G über einem Alphabet Σ die
zugehörige Sprache L(G) leer bzw. gleich Σ∗T ist,
• Endlichkeit: ob sie nur endlich viele Worte enthält,
• das Äquivalenzproblem: gegeben zwei beliebige Grammatiken G1 , G2 , entscheide, ob
L(G1 ) = L(G2 ) ,
• das Inklusionsproblem: L(G1 ) ⊆ L(G2 ) ?
• das Disjunktheitsproblem L(G1 ) ∩ L(G2 ) = ∅ ?
All diese Probleme sind für Sprachen vom Typ 0 nicht entscheidbar. Es stellt sich die Frage, ob diese
zumindest für die eingeschränkten Sprachklassen gelöst werden können. Wir betrachten dazu äquivalente
Charakterisierungen dieser Klassen mit Hilfe von Maschinenmodellen, so daß das Membership-Problem
beispielsweise darauf zurückgeführt werden kann, ob eine spezielle Maschine eine Eingabe akzeptiert.
1.3
Endliche Automaten
So wie bei Grammatiken durch Einschränkungen bei den Ableitungen eine Hierarchie von Klassen entsteht, kann man auch verschiedene Einschränkungen bei Turing Maschinen betrachten. Als wesentliches
Unterscheidungsmerkmal erweist sich die Art und Größe des Speichers sowie der Zugriff auf die Eingabe.
Die interessantesten Varianten sind die folgenden:
• die TM mit linearem Speicher, die außer den n Bandzellen, auf denen anfangs die Eingabe
gegeben ist, keine weiteren Speicherzellen zur Verfügung hat;
• der Pushdown-Automat oder Kellerautomat: ein eingeschränktes TM-Modell, das als Speicher nur über einen einzigen unbeschränkten Keller verfügt, auch Pushdown-Band, Stapel oder
Stack genannt. Ein Kellerspeicher ist ein einseitig unendliches lineares Band, bei dem bei jeder
Herunterladen