1.) Kontextfreie Sprachen und Grammatiken 2.) Reguläre Sprachen

Werbung
Theoretische Informatik – Testvorbereitung – Moritz Resl
Bestandteile einer Programmiersprache:
a) Syntax (Form): durch kontextfreie Grammatik beschrieben
b) Semantik (Bedeutung)
1.) Kontextfreie Sprachen und Grammatiken
Alphabet ∑: Nichtleere Menge von Symbolen (Zeichen); Beispiele {0,1} & {a,b,c,}..
Konkatenation: Verkettung (zB. Von x und y; x,y € ∑)
Hierbei gilt Assoziativgesetz
Präfix (m’): Ist ein Affix, der vorne an den Wortstamm angehängt wird (zB. benehmen)
Suffix (m’’): Ist ein an den Wortstamm angehänges Affix (zB. Männ-chen)
∑^2: Summe aller zweistelligen Worte über ∑
∑*:Summe aller Worte über ∑
Eine Sprache L ist Teilmenge über ∑*: L ⊆∑*
Grammatik G = ( N, ∑, P, S) ist ein Quadrupel:
N: Nichtterminalsymbole (werden abgeleitet)
∑: Terminalsymbole (werden nicht abgeleitet)
P ⊆ N: Menge der Regeln
S € N: Startsymbol
2.) Reguläre Sprachen und endliche Automaten
Rechtslinear: a) A  xB mit x € ∑* und B € N
Linkslinear: a) A  Bx mit x € ∑* und B € N
b) A  x mit x € ∑*
b) A  x mit x € ∑*
Grammatik heißt regulär (oder Chomsky Typ 3), wenn sie entweder links- oder
rechtslinear ist.
Ein (nichtdeterministischer) endlicher Automat – EA - ist ein Quintupel:
A = { Q, ∑, δ, q0, F}
Q: Menge der Zustände, endlich
∑: Eingabealphabet, endlich
δ: Übergangsfunktion
q0 € Q: Anfangszustand
F ⊆ Q: Menge der Endzustände, endlich
Grafische Darstellung eines EA:
Eingabeband (Darauf steht das zu analysierende Wort)
Lesekopf (Zeigt zu Beginn auf das erste Zeichen von w und wird bei jedem Schritt
um 1 nach rechts gesetzt)
Kontrolleinheit (speichert zu jedem Zeitpunkt den Zustand der aktuellen
Konfiguration)
I
Visualisierung durch Transitionsdiagramm
Knoten im Graph entsprechen den Zuständen des EA
Gibt es bei Eingabe von a einen Übergang vom Zustand q in den Zustand p, dann
existiert ein mit a markierter Pfeil vom Zustand q in den Zustand p im
Transitionsdiagramm.
Wichtige Merksätze:
1.) Zu jedem nichtdeterministischen endlichen Automaten A gibt es einen
deterministischen Autmomaten A’, der die gleiche Sprache erkennt
2.) Die Klasse aller regulären Mengen über einem Alphabet ist abgeschlossen
gegenüber Vereinigung, Durchschnitt, Komplement, Konkatenation und
Kleene’scher Sternoperation: dies ist also eine boolsche Algebra. (Das
Ergebnis dieser Operation ist wieder eine reguläre Menge.)
3.) Zu jedem regulären Ausdruck α mit zugeordneter Sprache L existiert ein
endlicher Automat A, sodass L(A) = L.
4.) Ist A ein endlicher Automat, dann existiert ein regulärer Ausdruck α, sodass
die durch α gekennzeichnete Sprache gleich L(A).
5.) Ist G eine reguläre Grammatik, dann gibt es einen endlichen Automaten A,
sodass L(A) = L(G).
6.) Ist A ein endlicher Automat, dann existiert eine reguläre Grammatik G, sodass
L(G) = L(A).
Methoden zur Präzisierung von Sprachen:
1.) Auflistung/Aufzählung aller Sprachelemente (nur für endliche Sprachen mit
relativ wenigen Elementen sinnvoll)
2.) Spezifikation eines formalen Ausdrucks (reguläre Ausdrücke, die beliebige
reguläre Sprachen beschreiben können; begrenzte Mächtigkeit und kann nicht
auf mächtigere Sprachklassen angewendet werden)
3.) Grammatiken (lassen sich zur (rekursiven) Erzeugung der Sätze einer
Sprache benutzen)
4.) Automaten (lassen sich zur Erkennung der Sätze einer Sprache verwenden)
Die beiden zuletzt genannten Methoden haben für die Praxis die größte Bedeutung.
Die Chomsky Hierarchie (nach Noam Chomsky) legt eine Hierarchie von vier
Sprachklassen - Chomsky-Typ 0 bis Chomsky-Typ 3 - fest und formalisiert die
Beziehung der zugehörigen Grammatik- und Automatenklassen.
Erzeugung und Erkennung von Sprachen
Die Erzeugung einer Sprache wird durch eine Grammatik spezifiziert. Grammatiken
lassen sich als spezielle Semi-Thue Systeme auffassen: Es wird ein Verfahren
angegeben, das aus einem Axiom (Startsymbol) und einer Menge von Regeln
(Produktionen) systematisch alle Sätze einer Sprache generiert.
II
Semi-Thue-Systeme (STS)
- Ein STS ist eine nichtleere, endliche Relation R ⊆ E* x E* auf dem Alphabet E.
- Die Tupel der Relation nennt man Regeln oder Produktionen.
-Bei Wörtern werden Zeichenketten durch andere Zeichenketten ersetzt.
Beispiel für ein STS:
E = {a,b,c,d,e}, R ⊆ E* x E ={(ab, ad), (dc, ee), (e, b), (ad, ae), (eb, b), (abc, e)}
oder in Regelschreibweise:
ab → ad dc → ee e → b
ad → ae eb → b abc → e
Erkennung von Sprachen
Sei L ⊆ Σ *. Wir definieren zwei Typen von Erkennungsverfahren.
- Entscheidbarkeit: Es wird ein Verfahren spezifiziert, das für jedes Wort w ∈ Σ*
entscheidet, ob w ∈ L oder nicht w ∈ L.
- Semi-Entscheidbarkeit: Es wird ein Verfahren spezifiert, das für jedes Wort w ∈
Σ* entscheidet, ob w ∈ L.
Chomsky-Grammatiken
Eine Chomsky Grammatik hat die Form G = (N, Σ, P, S), wo N und Σ die
Alphabete der Nichtterminal- bzw Terminalsymbole darstellen, P die
Regelmenge ist und S ∈ N das ausgezeichnete Symbol darstellt. Die
einzelnen Grammatikklassen werden durch die Form ihrer Regeln
unterschieden:
Typ-0 (unbeschränkte): α → β mit α ∈ Γ*NΓ* und β ∈ Γ*.
Typ-1 (kontextsensitive): α1Bα2 → α1αα2, mit B ∈ N, α1, α2 ∈ Γ* und α ∈ Γ+
oder S → ε und S tritt nicht auf der rechten Seite von Regeln auf.
Typ-2 (kontextfrei): A → α mit A ∈ N, α ∈ Γ*
Typ-3 (reguläre):
- rechtslinear: A → x oder A → xB, mit A, B ∈ N und x ∈ Σ*.
- linkslinear: A → x oder A → Bx, mit A, B ∈ N und x ∈ Σ*.
Die 4 Typen der Chomsky-Grammatiken entsprechen genau 4 Typen der Automaten:
0.) Turing-Maschine
1.) Linear beschränkte Automaten
2.) Keller-Automaten (Stack-Automaten)
3.) Endliche Automaten
Hierarchiesatz:
Bezeichne Li, 0 ≤ i ≤ 3, die Familie der Chomsky Typ-i Sprachen. Dann gilt
L3 ⊂ L2 ⊂ L1 ⊂ L0 (wobei alle Inklusionen echte Teilmengenbeziehungen
repräsentieren.)
Bemerkung zur Hierarchieeigenschaft
ist kontextfrei, aber nicht regulär.
Die Sprache { anbncn | n ≥ 1 } ist kontextsensitiv, aber nicht kontextfrei.
III
Äquivalenz und Wortproblem
Definition: Zwei Typ-0 Grammatiken G und G´ heißen äquivalent genau
dann, wenn L(G) = L(G´).
Definition: Gegeben sei eine Sprache L ⊆ Σ*. Wir betrachten das folgende
Problem: Gibt es ein Verfahren, das für ein beliebiges w ∈ Σ*
entscheidet, ob w ∈ L oder nicht w ∈ L? Man nennt dies das
Wortproblem für L.
Bemerkung:
Für Typ-0 Sprachen ist das Wortproblem im Allgemeinen nicht entscheidbar.
Für Typ-i Sprachen mit i ≥ 1 ist das Wortproblem entscheidbar.
Kellerautomat ist rein fiktiv. = eine endlicher Automat, der um einen Kellerspeicher
erweitert wurde. (Ein Kellerautomat mit 2 Kellerspeichern ist gleichmächtig zur
Turingmaschine.)
Eingabe wird zeichenweise von links nach rechts verarbeitet. Wenn möglich wird das
Eingabezeichen sofort verarbeitet, wenn nicht, gelangt es in den Kellerspeicher und
die Bearbeitung so bald wie möglich nachholt. Mögliche Aktionen hängen von
momentan verarbeiteten Eingabezeichen, vom momentanen Zustand des Automaten
und (=Erweiterung zum endlichen Automaten) zusätzlich vom Kellerinhalt ab (wobei
immer nur das oberste Zeichen im Keller relevant ist.) In jedem Verarbeitungsschritt
(das Lesen eines Zeichens & die damit verbundenen Operationen) kann sich der
Zustand des Automaten und der Kellerinhalt ändern.
Bestandteile (mechanisch):
Eingabeband
Lesekopf
Kontrolleinheit
Schreibkopf
Kellerspeicher
Deterministischer Kellerautomat
Allein die Überführungsrelation bildet den Unterschied zum nichtdeterministischen
Kellerautomaten.
Nichtdeterministischer Kellerautomat ist ein 7-Tupel.
M = (Z, Σ, Γ,δ,z0,#,F)
Z... endliche Menge von Zuständen
Σ... ein Eingabealphabet
Γ... das Kelleralphabet
δ... die Zustandsübergangsrelationen
z0 € Z... der Startzustand
# € Γ... das Anfangssymbol im Keller
F ⊆ Z... eine Menge von finalen Zuständen
IV
4.) Turing Maschinen
Deterministische Programme werden betrachtet. Folgende Sätze werden bewiesen:
1.) Jedes Programm realisiert eine Funktion, wir können also immer eine
Abbildung P  fP definieren, die einem Programm P eine Funktion f
zuordnet.
2.) Nicht jede Funktion lässt sich durch ein Programm realisieren.
3.) Eine Funktion, die sich durch ein Programm realisieren lässt, heißt
berechenbar.
4.) Für jede berechenbare Funktion gibt es unendlich viele Programme, die sich
realisieren lassen. Unterscheidbar durch Komplexität.
Mathematische Maschine, die zur Formalisierung des Berechenbarkeitsbegriffs
herangezogen werden kann. Turingmaschinen sind Chomsky Typ-0 Akzeptoren.
Bestandteile:
-Kontrolleinheit (endlich viele Zustände)
-Lese/Schreibkopf (mit externem Speicher verbunden)
-Arbeitsband
-Felder(Unterteilung des Arbeitsbands)
Unterschied zum endlichen Automaten: TM kann das Arbeitsband nicht nur lesen
sondern auch beschreiben. Der Lese-/Schreibkopf kann sich nach rechts, links oder
gar nicht bewegen beim Lesen/Schreiben (arbeiten).
Definition der Turingmaschine (ist Quintupel)
Z = (Q,Y,q0,qH,δ)
Q... endliche Menge von Zuständen
Y... endliche Menge von Bandzeichen
q0... Anfangszustand
qH... Haltezustand (Endzustand)
δ... Übergangsfunktionen
Kontrolleinheit: kann endlich viele Zustände annehmen (Elemente von Q)
Arbeitsband: in Felder unterteilt, in jedes Feld kann ein Symbol aus dem Alphabet Y
geschrieben werden. Die Gesamtheit der Felder heißt Bandinschrift.
Lese/Schreibkopf: verbindet Arbeitsband mit der Kontrolleinheit. Aktuelle Position
weist auf Arbeitsfeld.
Konfiguration von Z bestimmt durch:
1. Bandinschrift
2. Position des L/S-Kopf
3. Zustand der Kontrolleinheit
Arbeitsweise der TM durch eine endliche Menge von Quintupeln angegeben.
Eine Folge solcher Quintupel nennt man Turingtafel.
V
Herunterladen