theorie formaler sprachen klaus becker 2004. kb theorie formaler sprachen 2 formale sprachen und...
TRANSCRIPT
Theorie formaler SprachenTheorie formaler Sprachen
Klaus Becker2004
2
KB
Th
eori
e f
orm
ale
r S
pra
chen
Formale Sprachen und AutomatenFormale Sprachen und Automaten
Reguläre SprachenReguläre Sprachen Endliche AutomatenEndliche Automaten
Kontextfreie SprachenKontextfreie Sprachen KellerautomatenKellerautomaten
Kontextsensitive Sprachen
Kontextsensitive Sprachen Linear beschränkte TMLinear beschränkte TM
Allgemeine SprachenAllgemeine Sprachen TuringmaschinenTuringmaschinen
3
KB
Th
eori
e f
orm
ale
r S
pra
chen
Teil 1 Teil 1
Reguläre Sprachen
4
KB
Th
eori
e f
orm
ale
r S
pra
chen
Festlegung formaler SprachenFestlegung formaler Sprachen
ZielsetzungZielsetzung
Ziel ist es, verschiedene Möglichkeiten zur Festlegung formaler Sprachen zu vergleichen.
B zNN 0 N 1N 0N N 1N
Automat
Grammatik
5
KB
Th
eori
e f
orm
ale
r S
pra
chen
Die Sprache der ZustandsbezeichnerDie Sprache der Zustandsbezeichner
z0
z10
z01101
z000000
(Vereinfachte) Zustandsbezeichner(Vereinfachte) Zustandsbezeichner
Regeln zur Bildung vereinfachter ZustandsbezeichnerRegeln zur Bildung vereinfachter Zustandsbezeichner
/1/ Der Bezeichner beginnt mit einem z.
/2/ Danach kommt beliebig oft, aber mindestens einmal eine der Ziffern 0 oder 1.
6
KB
Th
eori
e f
orm
ale
r S
pra
chen
GrammatikGrammatik
S zAA 0A 1A 0AA 1A
z0
z10
z01101
z000000
(Vereinfachte) Zustandsbezeichner(Vereinfachte) Zustandsbezeichner
GrammatikregelnGrammatikregeln
7
KB
Th
eori
e f
orm
ale
r S
pra
chen
Übersetzung: Grammatik Übersetzung: Grammatik Automat Automat
S zAA 0A 1A 0AA 1A
S zAA 0A 1A 0AA 1A
8
KB
Th
eori
e f
orm
ale
r S
pra
chen
Übersetzung: Automat Übersetzung: Automat Grammatik Grammatik
B A 0BA 1BS zAA 1AA 0A
B A 0BA 1BS zAA 1AA 0A
9
KB
Th
eori
e f
orm
ale
r S
pra
chen
Exkurs: Nichtdeterministische Exkurs: Nichtdeterministische AutomatenAutomaten
Bei einem nichtdeterministischen Automaten besteht Wahlfreiheit: Der Automat kann bei einer gegebenen Eingabe von einem Zustand in verschiedene Folgezustände überführt werden.Bei einem deterministischen Automaten ist genau festgelegt, in welchen Folgezustand der Automat bei einer gegebenen Eingabe von einem Zustand aus überführt wird.
Wahlmöglichkeit
Wahlmöglichkeit
10
KB
Th
eori
e f
orm
ale
r S
pra
chen
Exkurs: Nichtdeterministische Exkurs: Nichtdeterministische AutomatenAutomaten
Unter der Sprache eines nichtdeterministischen Automaten versteht man die Menge aller Wörter (über dem Alphabet der Eingabezeichen), die den Automaten vom Anfangszustand (allg. von einem Anfangszustand) in einen Endzustand überführen können.
11
KB
Th
eori
e f
orm
ale
r S
pra
chen
Exkurs: Nichtdeterministische Exkurs: Nichtdeterministische AutomatenAutomaten
Das Teilwort z00 kann den Automaten in die Zustände q1 und q2 überführen. Wird das nächste Zeichen 1 verarbeitet, so erweist sich die bisherige Überführung in q2 als Sackgasse (rot). Die Verarbeitung von q1 aus führt in q1 (grau) oder q2 (grün).
12
KB
Th
eori
e f
orm
ale
r S
pra
chen
Überführung: NFA Überführung: NFA DFA DFA
nichtdeterministischer Automat (NFA)
deterministischer Automat (DFA)
13
KB
Th
eori
e f
orm
ale
r S
pra
chen
ÄquivalenzsatzÄquivalenzsatz
Bemerkungen:
Da jeder deterministische Automat auch ein nichtdeterministischer Automat ist, gilt trivialerweise auch die Umkehrung: Zu jedem deterministischen Automaten gibt es einen nichtdeterministischen Automaten, der dieselbe Sprache erkennt.
Deterministische und nichtdeterministische Automaten erkennen somit dieselben Sprachen.
Satz (Rabin, Scott)
Zu jedem nichtdeterministischen Automaten gibt es einen deterministischen Automaten, der dieselbe Sprache erkennt.
Satz (Rabin, Scott)
Zu jedem nichtdeterministischen Automaten gibt es einen deterministischen Automaten, der dieselbe Sprache erkennt.
14
KB
Th
eori
e f
orm
ale
r S
pra
chen
BeweisideeBeweisidee
Jede Menge von Zuständen des NFA ergibt einen neuen Zustand des DFA. Nicht benötigte Zustände werden weggelassen.
15
KB
Th
eori
e f
orm
ale
r S
pra
chen
Zusammenhang: Grammatik – AutomatZusammenhang: Grammatik – Automat
S zAA 0A 1A 0AA 1A
S zAA 0A 1A 0AA 1A
B A 0BA 1BS zAA 1AA 0A
B A 0BA 1BS zAA 1AA 0A
Grammatik NFA NFA Grammatik
Die Übersetzung Grammatik NFA bzw. NFA Grammatik funktioniert nur, wenn die Grammatikregeln eine sehr einfache Gestalt haben: - Auf der linken Seite steht ein Nichtterminalsymbol.- Auf der rechten Seite steht genau ein Terminalsymbol oder ein Terminalsymbol gefolgt von einem Nichtterminalsymbol.
16
KB
Th
eori
e f
orm
ale
r S
pra
chen
Reguläre GrammatikenReguläre Grammatiken
Eine Grammatik heißt regulär genau dann, wenn für jede Regel gilt: - Auf der linken Seite steht ein Nichtterminalsymbol.- Auf der rechten Seite steht genau ein Terminalsymbol oder ein Terminalsymbol gefolgt von einem Nichtterminalsymbol.
Eine Sprache heißt regulär genau dann, wenn sie mit Hilfe einer regulären Grammatik beschrieben werden kann.
Eine Grammatik heißt regulär genau dann, wenn für jede Regel gilt: - Auf der linken Seite steht ein Nichtterminalsymbol.- Auf der rechten Seite steht genau ein Terminalsymbol oder ein Terminalsymbol gefolgt von einem Nichtterminalsymbol.
Eine Sprache heißt regulär genau dann, wenn sie mit Hilfe einer regulären Grammatik beschrieben werden kann.
Beispiele für reguläre Grammatikregeln:
A cA aBA cA
Beispiele für nicht-reguläre Grammatikregeln:
A aBaAB c
17
KB
Th
eori
e f
orm
ale
r S
pra
chen
ÄquivalenzsatzÄquivalenzsatz
S zAA 0A 1A 0AA 1A
S zAA 0A 1A 0AA 1A
B A 0BA 1BS zAA 1AA 0A
B A 0BA 1BS zAA 1AA 0A
Grammatik NFA NFA Grammatik
Satz
Jede durch einen endlichen Automaten erkennbare Sprache ist regulär.
Jede reguläre Sprache kann durch einen endlichen Automaten erkannt werden.
Satz
Jede durch einen endlichen Automaten erkennbare Sprache ist regulär.
Jede reguläre Sprache kann durch einen endlichen Automaten erkannt werden.
18
KB
Th
eori
e f
orm
ale
r S
pra
chen
Überführung: NFA Überführung: NFA RE RE
(z((1+0)*))(0+1)
19
KB
Th
eori
e f
orm
ale
r S
pra
chen
Überführung: RE Überführung: RE NFA NFA
(z((1+0)*))(0+1)
20
KB
Th
eori
e f
orm
ale
r S
pra
chen
ÄquivalenzsatzÄquivalenzsatzSatz (Kleene)
Jede durch einen endlichen Automaten erkennbare Sprache kann durch einen regulären Ausdruck beschrieben werden.
Jede durch einen regulären Ausdruck beschreibbare Sprache kann durch einen endlichen Automaten erkannt werden.
Satz (Kleene)
Jede durch einen endlichen Automaten erkennbare Sprache kann durch einen regulären Ausdruck beschrieben werden.
Jede durch einen regulären Ausdruck beschreibbare Sprache kann durch einen endlichen Automaten erkannt werden.
21
KB
Th
eori
e f
orm
ale
r S
pra
chen
Beschreibung regulärer SprachenBeschreibung regulärer Sprachen
Folgende Sprachbeschreibungskonzepte sind äquivalent:
- deterministische endliche Automaten
- nichtdeterministische endliche Automaten
- reguläre Grammatiken
- reguläre Ausdrücke
S zAA 0A 1A 0AA 1A
S zAA 0A 1A 0AA 1A
(z((1+0)*))(0+1)
22
KB
Th
eori
e f
orm
ale
r S
pra
chen
ÜbungenÜbungen
Aufgabe 1Wir betrachten die Sprache der Wörter über dem Alphabet {a,b}, die mit a beginnen und mit b enden. Zeigen Sie, dass diese Sprache regulär ist. Entwerfen Sie zu dieser Sprache eine reguläre Grammatik, einen endlichen Automaten und einen regulären Ausdruck.
Aufgabe 2Wir betrachten die Sprache der Wörter über dem Alphabet {a,b,c}, die nach jedem a genau ein b enthalten. Zeigen Sie, dass diese Sprache regulär ist. Entwerfen Sie zu dieser Sprache eine reguläre Grammatik, einen endlichen Automaten und einen regulären Ausdruck.
Aufgabe 3Wir betrachten die Sprache der korrekt gebildeten ganzen Zahlen. Hierzu gehören z. B. 0, 3, +3, -3. Zeigen Sie, dass diese Sprache regulär ist.
23
KB
Th
eori
e f
orm
ale
r S
pra
chen
Teil 2 Teil 2
Kontextfreie Sprachen
24
KB
Th
eori
e f
orm
ale
r S
pra
chen
KlammersprachenKlammersprachen
<a> <zm> <z>off</z> <z>low</z> <z>high</z> </zm> <az> <z>off</z> </az> ...</a>
Vereinfachte ZustandsmengenVereinfachte Zustandsmengen
ATag
ETag
Element
Elementliste
Ein Element besteht aus einem Anfangstag, einem Bezeichner oder einer Elementliste und einem passenden Endtag.
25
KB
Th
eori
e f
orm
ale
r S
pra
chen
KlammersprachenKlammersprachen
<a> <zm><z>off</z><z>low</z><z>high</z></zm> <az><z>off</z></az> ...</a>
Vereinfachte ZustandsmengenVereinfachte Zustandsmengen
Terminalsymbole: '<', '>', '/', 'a', 'b', 'c', 'd', ...Startsymbol: <Element>Produktionen:<Abc> ::= 'a' | 'b' | 'c' | 'd' | ... <Bezeichner> ::= <Abc> | <Abc> <Bezeichner><ATag> ::= '<' <Bezeichner> '>' <ETag> ::= '<' '/' <Bezeichner> '>' <Element> ::= <ATag> <Bezeichner> <ETag> [*]<Element> ::= <ATag> <ElementListe> <ETag> [*]<ElementListe> ::= <Element> | <Element> <ElementListe>[*] Anfangs- und Endtag müssen zusammenpassen
GrammatikGrammatik
26
KB
Th
eori
e f
orm
ale
r S
pra
chen
KlammersprachenKlammersprachen
< < <off> <low> <high> > < <off> > ...>
XML mit vereinfachten TagsXML mit vereinfachten Tags
Terminalsymbole: '<', '>', 'a', 'b', 'c', 'd', ...Startsymbol: <Element>Produktionen:<Abc> ::= 'a' | 'b' | 'c' | 'd' | ... <Bezeichner> ::= <Abc> | <Abc> <Bezeichner><Element> ::= '<' <Bezeichner> '>' | '<' <ElementListe> '>'<ElementListe> ::= <Element> | <Element> <ElementListe>
<a> <zm> <z>off</z> <z>low</z> <z>high</z> </zm> <az> <z>off</z> </az> ...</a>
ATag
ETag
Element
Elementliste
27
KB
Th
eori
e f
orm
ale
r S
pra
chen
KlammersprachenKlammersprachen
< < <> <> <> > < <> > ...>
XML mit vereinfachten Tags ohne InhalteXML mit vereinfachten Tags ohne Inhalte
Terminalsymbole: '<', '>'Startsymbol: <Element>Produktionen:<Element> ::= '<' '>' | '<' <ElementListe> '>'<ElementListe> ::= <Element> | <Element> <ElementListe>
< < <off> <low> <high> > < <off> > ...>
28
KB
Th
eori
e f
orm
ale
r S
pra
chen
KlammersprachenKlammersprachen
< < <> >>
Klammer auf, Klammer zuKlammer auf, Klammer zu
Terminalsymbole: '<', '>'Startsymbol: <Element>Produktionen:<Element> ::= '<' '>' | '<' <Element> '>'
aaabbb
Terminalsymbole: a, bStartsymbol: SProduktionen:S ::= ab | aSb
L = {anbn | n 1}L = {anbn | n 1}
29
KB
Th
eori
e f
orm
ale
r S
pra
chen
Erkennen von KlammersprachenErkennen von Klammersprachen
Problem: Gesucht ist ein endlicher Automat, der Klammersprachen erkennt.Problem: Gesucht ist ein endlicher Automat, der Klammersprachen erkennt.
< < <> <> <> > < <> >>
Fehler
EA
<< <<<>>>>
ok
30
KB
Th
eori
e f
orm
ale
r S
pra
chen
Erkennen von KlammersprachenErkennen von Klammersprachen
Fehler
EA
<< <<<>>>>
Schwierigkeit:Schwierigkeit:
Der endliche Automat muss sich merken, wie viele Klammern geöffnet sind.
Zum Merken hat ein EA nur Zustände zur Verfügung.
Mit endlich vielen Zuständen kann man sich aber nicht beliebig viele geöffnete Klammern merken.
31
KB
Th
eori
e f
orm
ale
r S
pra
chen
Grenzen des endlichen AutomatenGrenzen des endlichen Automaten
Annahme: Es gibt einen endlichen Automaten A, der L akzeptiert.
A hat endliche viele Zustände. m bezeichne die Anzahl dieser Zustände.
Wir betrachten jetzt ein Wort w = akbk mit k > m. Das Wort w hat also einen Anfangsteil, der mehr a‘s enthält als A Zustände hat.
Bei der Verarbeitung des a-Anfangsteils von w muss zwangsläufig mindestens ein Zustand von A mindestens zweimal durchlaufen werden.
Es ergibt sich folgende Situation:
Satz
Es gibt keinen endlichen Automaten, der die Klammersprache L = {anbn | n 1} akzeptiert.
Satz
Es gibt keinen endlichen Automaten, der die Klammersprache L = {anbn | n 1} akzeptiert.
... ...
...
...
a a ...a
a
aa a b b
32
KB
Th
eori
e f
orm
ale
r S
pra
chen
Grenzen des endlichen AutomatenGrenzen des endlichen Automaten
... ...
...
...
a a ...a
a
aa a b b
Es gilt: w = akbk = apaqarbk mit p+q+r=k.
Betrachte w´ = apaqaqarbk. Beachte: p+q+q+r>k (mehr a‘s als b‘s).
Es gilt:
- w´ wird von A akzeptiert (da w´ genau wie w den AZ in einen EZ überführt).
- w´ gehört nicht zur Sprache L (da mehr a’s als b’s).
Dies ist ein Widerspruch zur Annahme, dass A die Sprache L = {anbn | n 1} akzeptiert. Die Annahme muss daher falsch sein. Die Aussage des Satzes ist folglich wahr.
ap
aq
ar bk
33
KB
Th
eori
e f
orm
ale
r S
pra
chen
Grenzen des endlichen AutomatenGrenzen des endlichen Automaten
Folgerungen:Folgerungen:
Es gibt Sprachen (wie z. B. die oben gezeigten Klammersprachen), die
- nicht von einem endlichen Automaten erkannt werden können,
- nicht mit einer regulären Grammatik beschrieben werden können,
- nicht mit einem regulären Ausdruck beschrieben werden können.
34
KB
Th
eori
e f
orm
ale
r S
pra
chen
Erweiterung des AutomatenmodellsErweiterung des Automatenmodells
...< < < > > >
...
>
>
...
Kellerautomat
Eingabeband
Keller
LesekopfZustandsbasiert
e Verarbeitungseinh
eit
35
KB
Th
eori
e f
orm
ale
r S
pra
chen
Spracherkennung mit KellerautomatenSpracherkennung mit Kellerautomaten
Oberstes Kellerzeichen
Kelleraktionen:Kelleraktionen:
push z Das Zeichen z auf den Stapel legen.
pop Das oberste Zeichen des Stapels entfernen.
Zustandsübergang:Zustandsübergang:
z / e: Aktion
Gelesene Eingabezeiche
n
Spracherkennung:Spracherkennung:
Ein Wort wird akzeptiert, wenn der Keller nach Abarbeitung des Wortes leer ist.
36
KB
Th
eori
e f
orm
ale
r S
pra
chen
Erkennung einer KlammerspracheErkennung einer Klammersprache
Erstellt mit „Automaton Simulator“
Beispiel:
Der Kellerautomat erkennt die Klammersprache L = {<n>n | n 1}.
Oberstes Kellerzeichen / Gelesene Eingabe : Kelleraktion
37
KB
Th
eori
e f
orm
ale
r S
pra
chen
Nichtdeterministische KellerautomatenNichtdeterministische Kellerautomaten
Nichtdeterminismus
Zustandsübergang:Zustandsübergang:
Eingabe , Pop-Aktion; Push-Aktion
Nichtdeterminismus
38
KB
Th
eori
e f
orm
ale
r S
pra
chen
Nichtdeterministische KellerautomatenNichtdeterministische Kellerautomaten
39
KB
Th
eori
e f
orm
ale
r S
pra
chen
ÜbungÜbung
Entwickeln Sie Kellerautomaten, die die folgenden Sprachen akzeptieren:
Terminalsymbole: '<', '>', 'a', 'b', 'c'Startsymbol: <Element>Produktionen:<Abc> ::= 'a' | 'b' | 'c' <Bezeichner> ::= <Abc> | <Abc> <Bezeichner><Element> ::= '<' <Bezeichner> '>' | '<' <ElementListe> '>'<ElementListe> ::= <Element> | <Element> <ElementListe>
Terminalsymbole: '<', '>'Startsymbol: <Element>Produktionen:<Element> ::= '<' '>' | '<' <ElementListe> '>'<ElementListe> ::= <Element> | <Element> <ElementListe>
40
KB
Th
eori
e f
orm
ale
r S
pra
chen
LösungsvorschlagLösungsvorschlag
Terminalsymbole: '<', '>', 'a', 'b', 'c'Startsymbol: <Element>Produktionen:<Abc> ::= 'a' | 'b' | 'c' <Bezeichner> ::= <Abc> | <Abc> <Bezeichner><Element> ::= '<' <Bezeichner> '>' | '<' <ElementListe> '>'<ElementListe> ::= <Element> | <Element> <ElementListe>
41
KB
Th
eori
e f
orm
ale
r S
pra
chen
Struktur der RegelnStruktur der Regeln
Auf der linken Seite steht jeweils ein Nichtterminalsymbol.Auf der rechten Seite steht ein Wort, das aus Terminal- und Nichtterminalsymbolen bestehen kann.
Terminalsymbole: '<', '>', 'a', 'b', 'c'Startsymbol: <Element>Produktionen:<Abc> ::= 'a' | 'b' | 'c' <Bezeichner> ::= <Abc> | <Abc> <Bezeichner><Element> ::= '<' <Bezeichner> '>' | '<' <ElementListe> '>'<ElementListe> ::= <Element> | <Element> <ElementListe>
Terminalsymbole: '<', '>'Startsymbol: <Element>Produktionen:<Element> ::= '<' '>' | '<' <ElementListe> '>'<ElementListe> ::= <Element> | <Element> <ElementListe>
Strukturanalyse:Strukturanalyse:
42
KB
Th
eori
e f
orm
ale
r S
pra
chen
Kontextfreie GrammatikenKontextfreie Grammatiken
Beispiele für kontextfreie Grammatikregeln:
E abE aLbL EL EL
Beispiele für nicht-kontextfreie Grammatikregeln:
aAb bAa
Eine Grammatik heißt kontextfrei genau dann, wenn für jede Regel gilt: - Auf der linken Seite steht ein Nichtterminalsymbol.- Auf der rechten Seite steht ein beliebiges Wort bestehend aus Terminal- und Nichtterminalsymbolen.
Eine Sprache heißt kontextfrei genau dann, wenn sie mit Hilfe einer kontextfreien Grammatik beschrieben werden kann.
Eine Grammatik heißt kontextfrei genau dann, wenn für jede Regel gilt: - Auf der linken Seite steht ein Nichtterminalsymbol.- Auf der rechten Seite steht ein beliebiges Wort bestehend aus Terminal- und Nichtterminalsymbolen.
Eine Sprache heißt kontextfrei genau dann, wenn sie mit Hilfe einer kontextfreien Grammatik beschrieben werden kann.
43
KB
Th
eori
e f
orm
ale
r S
pra
chen
Übersetzung: Grammatik Übersetzung: Grammatik KellerautomatKellerautomat
Nichtdeterministischer Zustandsübergang
44
KB
Th
eori
e f
orm
ale
r S
pra
chen
ÄquivalenzsatzÄquivalenzsatz
Satz
Eine Sprache ist kontextfrei genau dann, wenn sie von einem nichtdeterministischen Kellerautomaten erkannt wird.
Satz
Eine Sprache ist kontextfrei genau dann, wenn sie von einem nichtdeterministischen Kellerautomaten erkannt wird.
Beachte:
Mit deterministischen Kellerautomaten kann man nur eine echte Teilmenge der kontextfreien Sprachen erkennen.
45
KB
Th
eori
e f
orm
ale
r S
pra
chen
Teil 3 Teil 3
Kontextsensitive und allgemeine Sprachen
46
KB
Th
eori
e f
orm
ale
r S
pra
chen
BeispielBeispiel
<a> <zm><z>off</z><z>low</z><z>high</z></zm> <az><z>off</z></az> ...</a>
Vereinfachte ZustandsmengenVereinfachte Zustandsmengen
Regeln zur Bildung von XML-AusdrückenRegeln zur Bildung von XML-Ausdrücken
/1/ Ein Element besteht aus einem Anfangstag, einem Bezeichner oder einer Elementliste und einem passenden Endtag.
/2/ Ein Bezeichner besteht aus beliebigen alphanumerischen Zeichen.
47
KB
Th
eori
e f
orm
ale
r S
pra
chen
XMLXML
<a> <zm><z>off</z><z>low</z><z>high</z></zm> <az><z>off</z></az> ...</a>
Vereinfachte ZustandsmengenVereinfachte Zustandsmengen
Terminalsymbole: '<', '>', '/', 'a', 'b', 'c', 'd', ...Startsymbol: <Element>Produktionen:<Abc> ::= 'a' | 'b' | 'c' | 'd' | ... <Bezeichner> ::= <Abc> | <Abc> <Bezeichner><ATag> ::= '<' <Bezeichner> '>' <ETag> ::= '<' '/' <Bezeichner> '>' <Element> ::= <ATag> <Bezeichner> <ETag> [*]<Element> ::= <ATag> <ElementListe> <ETag> [*]<ElementListe> ::= <Element> | <Element> <ElementListe>[*] Anfangs- und Endtag müssen zusammenpassen
GrammatikGrammatik
48
KB
Th
eori
e f
orm
ale
r S
pra
chen
Eine vereinfachte Tag-KlammerspracheEine vereinfachte Tag-Klammersprache
aab bcaab
ATag-Wort-ETagATag-Wort-ETag
SprachbeschreibungSprachbeschreibung
L = {tut | t {a,b}*; u {a,b,c}*}
L ist die Menge aller Wörter, die aus einem beliebigen Wort u über dem Alphabet {a,b,c} und identischem Anfangs- und Endtag t besteht, wobei t ein beliebiges (nicht-leeres) Wort über dem Alphabet {a,b} ist.
ba ccbaba
49
KB
Th
eori
e f
orm
ale
r S
pra
chen
Tag-KlammerspracheTag-Klammersprache
aab bcaab
ATag-Wort-ETagATag-Wort-ETag
Startsymbol: SA ::= aA | bA | E ::= aE | bE | W ::= aW | bW | cW | S ::= A W E [*][*] A und E müssen zusammenpassen
Grammatik – Version 1 (mit Zusatzbedingung)Grammatik – Version 1 (mit Zusatzbedingung)
50
KB
Th
eori
e f
orm
ale
r S
pra
chen
Tag-KlammerspracheTag-Klammersprache
aab bcaab
ATag-Wort-ETagATag-Wort-ETag
Startsymbol: SS ::= aTaX | bTbXT ::= aTaX | bTbX | UaXb ::= baXaXa ::= aaXbXa ::= abXbXb ::= bbXaX ::= abX ::= bU ::= aU | bU | cU |
Grammatik – Version 2 (ohne Zusatzbedingung)Grammatik – Version 2 (ohne Zusatzbedingung)
51
KB
Th
eori
e f
orm
ale
r S
pra
chen
ÜbungÜbung
Startsymbol: SS ::= aTaX | bTbXT ::= aTaX | bTbX | UaXb ::= baXaXa ::= aaXbXa ::= abXbXb ::= bbXaX ::= abX ::= bU ::= aU | bU | cU |
Testen Sie die Grammatik der Tag-Klammersprache mit Hilfe des Werkzeugs JFLAP. Erzeugen Sie hierbei auch Syntaxbäume und versuchen Sie, die „Idee“ der Grammatikregeln zu verstehen.
52
KB
Th
eori
e f
orm
ale
r S
pra
chen
Test der Tag-KlammerspracheTest der Tag-Klammersprache
aab|bc|aab
53
KB
Th
eori
e f
orm
ale
r S
pra
chen
Struktur der RegelnStruktur der Regeln
Auf der linken und rechten Seite können beliebige Wörter bestehend aus Terminal- und Nichtterminalsymbolen stehen.
Strukturanalyse:Strukturanalyse:
Startsymbol: SS ::= aTaX | bTbXT ::= aTaX | bTbX | UaXb ::= baXaXa ::= aaXbXa ::= abXbXb ::= bbXaX ::= abX ::= bU ::= aU | bU | cU |
54
KB
Th
eori
e f
orm
ale
r S
pra
chen
Kontextsensitive / allgemeine Kontextsensitive / allgemeine GrammatikenGrammatiken
Beispiele:
aX a kontextsensitive Regel
bXa abX allgemeine Regel
Eine Grammatik heißt allgemein genau dann, wenn jede Regel die Struktur u v hat, wobei u und v beliebige Wörter bestehend aus Terminal- und Nichtterminalsymbolen sind.
Eine Grammatik heißt kontextsensitiv genau dann, wenn jede Regel die Struktur uAv uwv hat, wobei - A ein Nichtterminalsymbol ist und- u, v und w beliebige Wörter bestehend aus Terminal- und Nichtterminalsymbolen sind.
Eine Sprache heißt kontextsensitiv / allgemein genau dann, wenn sie mit Hilfe einer kontextsensitiven / allgemeinen Grammatik beschrieben werden kann.
Eine Grammatik heißt allgemein genau dann, wenn jede Regel die Struktur u v hat, wobei u und v beliebige Wörter bestehend aus Terminal- und Nichtterminalsymbolen sind.
Eine Grammatik heißt kontextsensitiv genau dann, wenn jede Regel die Struktur uAv uwv hat, wobei - A ein Nichtterminalsymbol ist und- u, v und w beliebige Wörter bestehend aus Terminal- und Nichtterminalsymbolen sind.
Eine Sprache heißt kontextsensitiv / allgemein genau dann, wenn sie mit Hilfe einer kontextsensitiven / allgemeinen Grammatik beschrieben werden kann.
55
KB
Th
eori
e f
orm
ale
r S
pra
chen
Einordnung der Tag-KlammerspracheEinordnung der Tag-Klammersprache
Satz
Die Tag-Klammersprache L = {tut | t {a,b}*; u {a,b,c}*}
a) ist allgemein,
b) ist kontextsensitiv,
c) ist nicht kontextfrei.
Satz
Die Tag-Klammersprache L = {tut | t {a,b}*; u {a,b,c}*}
a) ist allgemein,
b) ist kontextsensitiv,
c) ist nicht kontextfrei.
Der Nachweis von a) ist mit der bereits angegebenen Grammatik erbracht.Auf den Nachweis von b) und c) wird hier verzichtet.
56
KB
Th
eori
e f
orm
ale
r S
pra
chen
Spracherkennung durch ...Spracherkennung durch ...
Brute Force Parser
Erzeugung von Hilfknoten
57
KB
Th
eori
e f
orm
ale
r S
pra
chen
... Suche einer Ableitung... Suche einer Ableitung
Grammatik:S ::= aSaX | bSbX | UaXb ::= baX; aXa ::= aaX; bXa ::= abX; bXb ::= bbX aX ::= a; bX ::= bU ::= aU | bU | cU |
Ableitung:S aSaX a(aSaX)aX = aaSaXaX aa(bSbX)aXaX = aabSbXaXaX aab(bSbX)bXaXaX = aabbSbXbXaXaX aabb(U)bXbXaXaX = aabbUbXbXaXaX aabb(cU)bXbXaXaX = aabbcUbXbXaXaX aabbc()bXbXaXaX = aabbcbXbXaXaX aabbc(bbX)XaXaX = aabbcbbXXaXaX # aab(U)bXaXaX = aabUbXaXaX aab(cU)bXaXaX = aabcUbXaXaX...
Wort: aabbcaab
Backtracking
58
KB
Th
eori
e f
orm
ale
r S
pra
chen
Erweiterung des AutomatenmodellsErweiterung des Automatenmodells
...< < < > > >
...
Turingmaschine
Ein-/Ausgabeband
Schreib-/Lesekopf
Zustandsbasierte
Verarbeitungseinheit
59
KB
Th
eori
e f
orm
ale
r S
pra
chen
Spracherkennung mit TuringmaschinenSpracherkennung mit Turingmaschinen
Turingmaschinenaktionen:Turingmaschinenaktionen:
R ein Feld nach rechts
L ein Feld nach links
S stopp
Zustandsübergang:Zustandsübergang:
a ; b, R
Geschriebenes Zeichen
Aktion
Gelesenes Zeichen
60
KB
Th
eori
e f
orm
ale
r S
pra
chen
WorterkennungWorterkennung
Worterkennung mit leerem BandWorterkennung mit leerem Band
Das zu bearbeitende Wort wird auf das Band geschrieben. Der Schreib-Lese-Kopf wird auf das erste Zeichen des Wortes gesetzt.
Ein Wort wird akzeptiert, wenn die Turingmaschine nach der Bearbeitung des Wortes hält und ein leeres Band hinterlässt.Worterkennung mit EndzuständenWorterkennung mit Endzuständen
Das zu bearbeitende Wort wird auf das Band geschrieben. Der Schreib-Lese-Kopf wird auf das erste Zeichen des Wortes gesetzt.
Ein Wort wird akzeptiert, wenn sich die Turingmaschine nach der Bearbeitung des Wortes in einem Endzustand befindet.
61
KB
Th
eori
e f
orm
ale
r S
pra
chen
Spracherkennung mit Turingmaschinen Spracherkennung mit Turingmaschinen
Worterkennung mit leerem Band am Beispiel L = {anbn | n 0}Worterkennung mit leerem Band am Beispiel L = {anbn | n 0}
62
KB
Th
eori
e f
orm
ale
r S
pra
chen
Spracherkennung mit Turingmaschinen Spracherkennung mit Turingmaschinen
Worterkennung mit Endzuständen am Beispiel L = {anbn | n 0}Worterkennung mit Endzuständen am Beispiel L = {anbn | n 0}
63
KB
Th
eori
e f
orm
ale
r S
pra
chen
Spracherkennung mit Turingmaschinen Spracherkennung mit Turingmaschinen
Worterkennung mit Endzuständen am Beispiel L = {anbn | n 0}Worterkennung mit Endzuständen am Beispiel L = {anbn | n 0}
64
KB
Th
eori
e f
orm
ale
r S
pra
chen
Erkennung der Tag-KlammerspracheErkennung der Tag-Klammersprache
Satz
Die Tag-Klammersprache L = {tut | t {a,b}*; u {a,b,c}*} kann mit Hilfe einer Turingmaschine erkannt werden.
Satz
Die Tag-Klammersprache L = {tut | t {a,b}*; u {a,b,c}*} kann mit Hilfe einer Turingmaschine erkannt werden.
Schritt 1: Führe Begrenzer ein: aabbcaab xaabbcaabx
Schritt 2: Lass die Begrenzer Schritt für Schritt nach innen wandern und überprüfe, ob die Teilworte links und rechts vom Begrenzer gleich sind:xaabbcaabx ... axabbxaaxb ... aaxbbcaxab ... aabxbcxaab
Ersetze hierzu Schritt für Schritt am linken Ende ein a durch ein y bzw. ein b durch ein z, wandere jeweils an das rechte Ende an die entsprechende Position. Wenn das passende Zeichen gefunden wird, dann ersetze es analog, ansonsten mach die Ersetzung rückgängig und verschiebe die Begrenzer eine Position weiter nach innen.
Idee – dargestellt am Beispiel aab|bc|aabIdee – dargestellt am Beispiel aab|bc|aab
65
KB
Th
eori
e f
orm
ale
r S
pra
chen
... mit dem MPG-Turing-Simulator... mit dem MPG-Turing-Simulator
66
KB
Th
eori
e f
orm
ale
r S
pra
chen
Erkennung der Tag-KlammerspracheErkennung der Tag-Klammersprache
Satz
Die Tag-Klammersprache L = {tut | t {a,b}*; u {a,b,c}*} kann mit Hilfe einer linear beschränkten Turingmaschine erkannt werden.
Satz
Die Tag-Klammersprache L = {tut | t {a,b}*; u {a,b,c}*} kann mit Hilfe einer linear beschränkten Turingmaschine erkannt werden.
Eine linear beschränkte Turingmaschine ist eine Turingmaschine, bei der die Eingabe durch Randmarkierungen > und < eingeschlossen wird. Die Turingmaschine darf bei der Bearbeitung diese Markierungen weder überschreiten noch überschreiben.
BemerkungBemerkung
67
KB
Th
eori
e f
orm
ale
r S
pra
chen
ÄquivalenzsatzÄquivalenzsatz
Satz
Eine Sprache ist allgemein genau dann, wenn sie von einer deterministischen (oder nichtdeterministischen) Turingmaschine erkannt wird.
Eine Sprache ist kontextsensitiv genau dann, wenn sie von einer linear beschränkten nichtdeterministischen Turingmaschine erkannt wird.
Satz
Eine Sprache ist allgemein genau dann, wenn sie von einer deterministischen (oder nichtdeterministischen) Turingmaschine erkannt wird.
Eine Sprache ist kontextsensitiv genau dann, wenn sie von einer linear beschränkten nichtdeterministischen Turingmaschine erkannt wird.
Deterministische und nichtdeterministische Turingmaschinen sind gleich mächtig.
BemerkungBemerkung
68
KB
Th
eori
e f
orm
ale
r S
pra
chen
ÜbungenÜbungen
Aufgabe 1Entwerfen und testen Sie eine Turingmaschine, die die Sprache L = {anbn | n 0} akzeptiert.
Aufgabe 2Entwerfen und testen Sie eine Turingmaschine, die die Sprache der korrekt gebildeten Zahlen akzeptiert.
Aufgabe 3Entwerfen und testen Sie eine Turingmaschine, die die Sprache der korrekt geklammerten a-b-Ausdrücke akzeptiert. Zu dieser Sprache gehören alle Wörter über dem Alphabet {a, b}, die zu jeder öffnenden Klammer a eine schließende Klammer b haben. Z. B.: aabb, aababb, aaababbabb
Aufgabe 4Entwerfen und testen Sie eine Turingmaschine, die die Sprache L = {anbncn| n 0} akzeptiert.
69
KB
Th
eori
e f
orm
ale
r S
pra
chen
ÜbungenÜbungen
Aufgabe 5Welche der in Aufgabe 1, ..., Aufgabe 4 beschriebenen Sprachen ist regulär, kontextfrei, kontextsensitiv, allgemein?
70
KB
Th
eori
e f
orm
ale
r S
pra
chen
Teil 4 Teil 4
Exkurs: Natürliche Sprachen
71
KB
Th
eori
e f
orm
ale
r S
pra
chen
Chomsky-HierarchieChomsky-Hierarchie
Typ Grammatik äquivalenter Automat
0 allgemein (nicht)deterministische Turingmaschine
1 kontextsensitiv nichtdet. linear beschr. Turingmaschine
2 kontextfrei nichtdeterministischer Kellerautomat
3 regulär (nicht)deterministischer endl. Automat
Klassifikation von Sprachen (nach Chomsky / 1958)Klassifikation von Sprachen (nach Chomsky / 1958)
72
KB
Th
eori
e f
orm
ale
r S
pra
chen
Noam ChomskyNoam Chomsky
http://web.mit.edu/linguistics/www/chomsky.home.html
73
KB
Th
eori
e f
orm
ale
r S
pra
chen
(Natürliche) Sprachen(Natürliche) Sprachen
Sicht: zu Kommunikationszwecken verwendetes ZeichensystemSicht: zu Kommunikationszwecken verwendetes Zeichensystem
Problem: Beschreibung und Erkennung natürlicher SprachenProblem: Beschreibung und Erkennung natürlicher Sprachen
74
KB
Th
eori
e f
orm
ale
r S
pra
chen
SemiotikSemiotik
Semiotik: Lehre von den ZeichenSemiotik: Lehre von den Zeichen
Pragmatik: Lehre von der Verwendung sprachlicher Konstrukte in Handlungs-situationen
Beziehung zwischen Zeichen und Zeichenbenutzer
Pragmatik: Lehre von der Verwendung sprachlicher Konstrukte in Handlungs-situationen
Beziehung zwischen Zeichen und Zeichenbenutzer
Semantik: Bedeutungslehre
Beziehung zwischen Zeichen und Bezeichnetem
Semantik: Bedeutungslehre
Beziehung zwischen Zeichen und Bezeichnetem
Syntax: Lehre vom Satzbau
Anordnung der Zeichen
Syntax: Lehre vom Satzbau
Anordnung der Zeichen
75
KB
Th
eori
e f
orm
ale
r S
pra
chen
Syntax natürlicher SprachenSyntax natürlicher Sprachen
<S> ::= <NP> <VP>Ein Satz besteht aus einer Nominalphrase und einer Verbalphrase.
<NP> ::= <N> | <A> <N> | <N> <PP>Eine Nominalphrase muss immer aus einem Nomen bestehen, welchem unter Umständen ein Artikel vorangestellt ist. Ferner kann dem Nomen eine oder mehrere Präpositionalphrasen nachgestellt sein.
<VP> ::= <V> | <V> <NP> | <VP> <PP>Eine Verbalphrase besteht aus einem Verb, dem eine Nominal- oder Präpositionalphrase nachgestellt sein kann.
<PP> ::= <P> <NP>Eine Präpositionalphrase besteht aus einer Präposition und einer Nominalphrase.
<A> ::= der | die | das | dem | ein | einem | ...<P> ::= mit | in | ...<N> ::= Anna | Kuh | Park | Fernglas | ...<V> ::= betrachtet | ...
(nach U. Schöning: Ideen der Informatik. Oldenbourg 2002)
76
KB
Th
eori
e f
orm
ale
r S
pra
chen
Ableitung eines SatzesAbleitung eines Satzes
<S> <NP> <VP> <N> <VP> <N> <VP> Anna <VP> Anna <VP> <PP> Anna <V> <NP> <PP> Anna betrachtet <NP> <PP> Anna betrachtet <A> <N> <PP> Anna betrachtet die <N> <PP> Anna betrachtet die Kuh <PP> Anna betrachtet die Kuh <P> <NP> Anna betrachtet die Kuh mit <NP> Anna betrachtet die Kuh mit <A> <N> Anna betrachtet die Kuh mit einem <N> Anna betrachtet die Kuh mit einem Fernglas
<S> ::= <NP> <VP><NP> ::= <N> | <A> <N> | <N> <PP><VP> ::= <V> | <V> <NP> | <VP> <PP><PP> ::= <P> <NP><A> ::= der | die | das | einem | ...<P> ::= mit | in | ...<N> ::= Anna | Kuh | Fernglas | ...<V> ::= betrachtet | ...
<S> ::= <NP> <VP><NP> ::= <N> | <A> <N> | <N> <PP><VP> ::= <V> | <V> <NP> | <VP> <PP><PP> ::= <P> <NP><A> ::= der | die | das | einem | ...<P> ::= mit | in | ...<N> ::= Anna | Kuh | Fernglas | ...<V> ::= betrachtet | ...
77
KB
Th
eori
e f
orm
ale
r S
pra
chen
Automatische ÜbersetzungAutomatische Übersetzung
Die Beschreibung, Erkennung und Übersetzung natürlicher Sprachen ist sehr schwierig. Der Beschreibungsansatz über Grammatiken hat bisher nicht zum Erfolg geführt.
BemerkungBemerkung
78
KB
Th
eori
e f
orm
ale
r S
pra
chen
Automatische Übersetzung heuteAutomatische Übersetzung heute
Idee: Statistische Übersetzung mit Paralleltexten http://www.uebersetzerportal.de/nachrichten/n-archiv/2003/2003-09/2003-09-17.htmIdee: Statistische Übersetzung mit Paralleltexten http://www.uebersetzerportal.de/nachrichten/n-archiv/2003/2003-09/2003-09-17.htm
79
KB
Th
eori
e f
orm
ale
r S
pra
chen
LiteraturhinweiseLiteraturhinweise
Gasper / Leiß / Spengler / Stimm: Technische und theoretische Informatik. Bsv 1992.
U. Schöning: Theoretische Informatik – kurzgefasst. Spektrum Akademischer Verlag 2001.
J. E. Hopcroft / J. D. Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. Addison-Wesley 1988.
Automaton Simulator: http://www.cburch.com/proj/autosim/
Jflap: http://www.cs.duke.edu/~rodger/tools/jflap/
Charon: http://www.spohrer.net/charon.htm
GoldParserBuilder: www.devincook.com/goldparser/