Spracherkennung mit Kellerautomaten und Turingmaschinen - PowerPoint PPT Presentation

About This Presentation
Title:

Spracherkennung mit Kellerautomaten und Turingmaschinen

Description:

K ok acaa Fehler acaa Man kann zeigen, dass die Sprache LMyXML nicht von einem (noch so komplizierten) Kellerautomaten erkannt werden kann. – PowerPoint PPT presentation

Number of Views:118
Avg rating:3.0/5.0
Slides: 55
Provided by: KB96
Category:

less

Transcript and Presenter's Notes

Title: Spracherkennung mit Kellerautomaten und Turingmaschinen


1
Spracherkennung mit Kellerautomaten und
Turingmaschinen
  • Klaus Becker
  • 2013

2
Kellerautomat und Turingmaschine
3
Teil 1
Erkennen von Klammersprachen
4
Klammersprachen
Der Hund, der die Katze, die eine Maus, die
gerade ein Stück Käse, das gestern, als das
Fußballspiel, das im Fernsehen gezeigt wurde,
gerade zu Ende war, weggeworfen wurde, anbeißt,
jagt, anbellt, heißt Bello.
125 23(5718) 35(74) ((26)5)(74) ...
lt?xml version"1.0" encoding"iso-8859-1"?gtltBuchgt
ltAutorgtltNamegtBoriklt/Namegt ltVornamegtOttolt/Vorname
gtltHrsg/gtlt/AutorgtltTitelgtMeyers
Schachlexikonlt/TitelgtltVerlaggtMeyers
Lexikonverlaglt/Verlaggt ltErscheinungsortgtMannheimlt/
Erscheinungsortgt ltErscheinungsjahrgt1993lt/Erscheinu
ngsjahrgt ltISBNgt3-411-08811-7lt/ISBNgtlt/Buchgt
MarkeSetzenSchrittSOLANGE NichtIstMarke TUE
SOLANGE NichtIstWand TUE Schritt
SOLANGE LinksDrehenSOLANGE
5
Beispiel Rechenausdrücke
Rechenausdrücke sind Ausdrücke, in denen Zahlen,
Rechenzeichen und Klammern vokommen können. Sie
begegnen uns überall, wo kompliziertere
Rechnungen dargestellt werden müssen.
125 23(5718) 35(74) ((26)5)(74) ...
zz z(zz) zz(zz) ((zz)z)(zz) ...
Im folgenden wollen wir uns auf die Klammer- und
Rechenstruktur solcher Rechenausdrücke
konzentrieren. Die Zahlen soll nur eine
untergeordnete Rolle spielen. Wir ersetzen daher
jede Zahl durch das Symbol "z". Zusätzlich
betrachten wir der Einfachheit halber nur
Rechenausdrücke mit den Rechenzeichen und .
Entscheidend für die so vereinfachten
Rechenausdrücke ist die korrekte Klammerung Zu
jeder öffnenden Klammer muss es - an passender
Stelle - eine schließende Klammer geben.
6
Beispiel Rechenausdrücke
Die Sprache LRA der vereinfachten Rechenausdrücke
soll genau solche Klammer- und Rechenstrukturen
beschreiben. Sie basiert auf dem Alphabet S z,
, , (, ). Präzise beschreiben kann man sie mit
der folgenden Grammatik
A -gt A S A -gt S S -gt S F S -gt F F -gt ( A ) F
-gt z
Aufgabe Zeige mit Hilfe einer Ableitung, dass
das Wort z(zz) (einfach) bzw. das Wort
zz(zz) (schwieriger) mit Hilfe der Grammatik
erzeugt werden kann.
7
Beispiel Programmiersprachen
Als Beispiel für eine sehr einfache
Programmiersprache betrachten wir die Sprache,
mit der man den Roboter Karol steuern kann.
Auch hier kommen Klammerstrukturen vor. Bei einer
Solange-Anweisung werden Beginn und Ende mit den
Schlüsselwörtern SOLANGE und SOLANGE
gekennzeichnet.
8
Beispiel Programmiersprachen
Wir wollen Karol-Programme vereinfacht
darstellen. Mit dem Symbol e soll eine elementare
Anweisung beschrieben werden, mit dem Symbol b
eine Bedingung. Mit den Symbolen s und sollen
Beginn und Ende einer SOLANGE-Anweisung
gekennzeichnet werden.
MarkeSetzenSchrittSOLANGE NichtIstMarke TUE
SOLANGE NichtIstWand TUE Schritt
SOLANGE LinksDrehenSOLANGE
ees b s b e e
eesbsbee
Aufgabe Entwickle eine Grammatik für die Sprache
LRP der vereinfachten Roboterprogramme. Du kannst
sie auch selbstständig um Symbole zur
Kennzeichnung von Fallunterscheidungen erweitern.
9
Beispiel XML
XML benutzt sogenannte Tags zur
Informationsbeschreibung. Anfangs- und Endtags
bilden dabei jeweils Klammerpaare.
lt?xml version"1.0" encoding"iso-8859-1"?gtltBuchgt
ltAutorgtltNamegtBoriklt/Namegt ltVornamegtOttolt/Vorname
gtltHrsg/gtlt/AutorgtltTitelgtMeyers
Schachlexikonlt/TitelgtltVerlaggtMeyers
Lexikonverlaglt/Verlaggt ltErscheinungsortgtMannheimlt/
Erscheinungsortgt ltErscheinungsjahrgt1993lt/Erscheinu
ngsjahrgt ltISBNgt3-411-08811-7lt/ISBNgtlt/Buchgt
XML erlaubt es dem Benutzer, solche Klammerpaare
selbst festzulegen und somit flexibel komplexe
Klammerstrukturen zu entwickeln.
10
Beispiel XML
Die Sprache LMyXML soll vereinfachte XML-artige
Ausdrücke beschreiben. Jedes zu dieser Sprache
gehörende Wort soll aus einem Anfangstag, einem
Text und einem Endtag bestehen. Anfangs- und
Endtag sollen im Wesentlichen identisch sein. Die
Tag-Bezeichner sind beliebige nicht-leere
Zeichenketten, die nur aus den Buchstaben a und b
bestehen. Der Text zwischen den Anfangs- und
End-Tag soll nur aus den Buchstaben a, b und c
bestehen. Zur Sprache LMyXML gehört
beispielsweise das Wort ltabgtacaalt/abgt.
S -gt ltaATgtS -gt ltbBTgtT -gt aATT -gt bBTT -gt MAa
-gt aAAb -gt bAAM -gt MaBa -gt aBBb -gt bBBM -gt
MbM -gt gtNN -gt aNN -gt bNN -gt cNN -gt lt/
Aufgabe Die Sprache LMyXML kann mit der
gezeigten Grammatik beschrieben werden. Erstelle
eine Ableitung des Worts ltabgtacaalt/abgt.
11
Grenzen von endlichen Automaten
Satz (über die Grenzen von endlichen
Automaten) Die Sprache L anbn n 1, 2, 3,
... kann nicht von einem endlichen Automaten
erkannt werden. Sie ist also nicht regulär.
Allen Klammersprachen ist gemeinsam, dass es zu
jeder öffnenden Klammer eine korrespondierende
schließende Klammer geben muss. Wir betrachten im
Folgenden nur noch diese zentrale Eigenschaft von
Klammersprachen. Wir erfassen diese Eigenschaft
mit ganz einfachen Klammerausdrücken, die wie
folgt aufgebaut sind (), (()), ((())), ... ab,
aabb, aaabbb,
12
Erweitertes Automatenmodell
Wir betrachten hier korrekte Klammerausdrücke der
Gestalt (((...))), die nach einer Anzahl
öffnender Klammern genauso viele schließende
Klammern haben. So ist (()) ein korrekter
Klammerausdruck, während die Ausdrücke (() und
(()))) keine korrekten Klammerausdrücke in
unserem Sinne sind.
Kellerautomat / Stapelautomat
13
Erweitertes Automatenmodell
Aufgabe Erstelle mit JFlap den abgebildeten
erweiterten Automaten (mit FileNewPushdown
Automaton). Teste mit InputStep by State die
Arbeitsweise des erweiterten Automaten.
14
Kellerautomat
Der Kellerautomat hat eine nichtleere endliche
Menge Z von Zuständen. Im vorliegenden Fall ist
das die Menge Z q0, q1, q2. Der Zustand q0
ist hier als Anfangszustand ausgezeichnet, der
Zustand q2 als ein Endzustand.
Eine Verarbeitung wird durch einen
Zustandsübergang (von einem Zustand in einen
anderen, gegebenenfalls denselben Zustand)
beschrieben. Ein Zustandsübergang erfolgt nur in
Abhängigkeit von einem Eingabesymbol und den
obersten Kellersymbolen. Ein Zustandsübergang
aktualisiert zudem den Keller, indem Symbole vom
Keller entfernt und neue Symbole im Keller
abgelegt werden.
zu entfernende oberste Kellersymbole
hinzuzufügende oberste Kellersymbole
Eingabe
15
Fachkonzept - Kellerautomat
  • Ein (nichtdeterministischer) Kellerautomat ist
    eine Verarbeitungseinheit, die durch folgende
    Bestandteile festgelegt wird
  • e. nichtleere, endl. Menge von Zuständen
  • eine nichtleere, endliche Menge von
    Eingabesymbolen
  • eine nichtleere, endliche Menge von
    Kellersymbolen,
  • eine Überführungsfunktion, die dem aktuellem
    Zustand in Abhängigkeit von einer vorgegebener
    Eingabe und einer Folge von Kellersymbolen die
    Folgezustände zuordnet und zudem die jeweils neu
    im Keller aufzunehmenden Symbole festlegt,
  • ein ausgezeichneter Zustand - dem Anfangszustand
    -,
  • eine Menge von Endzuständen
  • ein ausgezeichnetes Kellersymbol, das die untere
    Kellerbegrenzung beschreibt.

Bei einem deterministischen Kellerautomaten
müssen die Zustandsübergänge eindeutig sein. Es
sind auch keine ?-Übergänge der Gestalt ?,??
erlaubt.
16
Fachkonzept - Kellerautomat
Die Menge der Eingabesymbole eines
Kellerautomaten kann als Alphabet einer Sprache
aufgefasst werden. Unter der Sprache eines
Kellerautomaten versteht man die Menge aller
Wörter aus Eingabesymbolen, die den
Kellerautomaten vom Anfangszustand in einen
Endzustand überführen. Wenn K ein gegebener
Kellerautomat ist, dann schreiben wir L(K) für
die Sprache des Kellerautomaten K.
S (, )
L(A) (), (()), ((())), ...
17
Fachkonzept - Kellerautomat
Ein Kellerautomat ist also eine
Verarbeitungseinheit, die Symbole eines
Eingabeworts verarbeitet, sich dabei stets in
einem bestimmten Zustand befindet und die zum
Zwischenspeichern von Symbolen einen Stapel /
Keller benutzt.
18
Übungen
Aufgabe Im Folgenden sollen etwas
verallgemeinerte Klammerausdrücke betrachtet
werden ()(), (()(())), ()(())(()()), ... bzw. in
abstrahierter Form abab, aabaabbb, abaabbaababb,
... (a) Beschreibe diese verallgemeinerten
Klammerausdrücke mit einer Grammatik. (b)
Entwickle einen Kellerautomaten, der die Sprache
der verallgemeinerten Klammerausdrücke erkennt.
Aufgabe Entwickle einen Kellerautomaten, der die
Sprache der vereinfachten Rechenausdrücke /
vereinfachten Karol-Programme erkennt.
eesbsbee
zz z(zz) zz(zz) ((zz)z)(zz) ...
19
Teil 2
Kellerautomaten und kontextfreie Sprachen
20
JFlap Grammatik -gt Kellerautomat
Wir betrachten eine Grammatik für die Sprache Lab
anbn n 1, 2, 3, ... der Klammerausdrücke.
Aufgabe Analysiere den Zusammenhang zwischen der
vorgegebenen Grammatik und dem erzeugten
Kellerautomaten. Analysiere auch, was sich im
Keller des Kellerautomaten abspielt, wenn ein
Eingabewort verarbeitet wird. Der aus der
Grammatik erzeugte Kellerautomat ist
nichtdeterministisch. Woran erkennt man das?
21
JFlap Kellerautomat -gt Grammatik
Wir betrachten einen Kellerautomaten zur
Erkennung der Sprache Lab anbn n 1, 2, 3,
... der Klammerausdrücke.
22
JFlap Kellerautomat -gt Grammatik
Wir ändern den Kellerautomaten geringfügig ab, so
dass die Fehlermeldung "Transitions must pop 1
and push 0 or 2" nicht mehr auftritt.
23
JFlap Kellerautomat -gt Grammatik
JFlap erzeugt aus dem Kellerautomaten eine
komplizierte Grammatik.
24
JFlap Kellerautomat -gt Grammatik
JFlap vereinfacht die erzeugte Grammatik.
25
Kontextfreie Grammatiken
Zum Kellerautomaten K lässt sich die Grammatik GK
erzeugen. Es fällt auf, dass alle Produktionen
dieser Grammatik GK eine bestimmte Struktur haben.
Nichtterminalsymbol
S -gt LDA -gt aB -gt bL -gt FB D -gt ? F -gt AL F -gt
?
Wort bestehend aus Terminal- und
Nichtterminalsymbolen
26
Fachkonzept - kontextfreie Sprache
Eine Produktion u -gt v heißt kontextfrei genau
dann, wenn gilt Die linke Seite u der Produktion
ist ein Nichtterminalsymbol. Die rechte Seite v
der Produktion ist ein beliebiges Wort (also auch
das leere Wort) bestehend aus Terminal- und
Nichtterminalsymbolen.
A -gt AS A -gt S S -gt SF S -gt F F -gt (A) F -gt z
kontextfreie Grammatik für LRA
S -gt ltaATgt S -gt ltbBTgt T -gt aAT T -gt bBT T -gt M Aa
-gt aA Ab -gt bA AM -gt Ma Ba -gt aB Bb -gt bB BM -gt
Mb M -gt gtN N -gt aN N -gt bN N -gt cN N -gt lt/
Eine Grammatik heißt kontextfrei genau dann, wenn
alle Produktionen der Grammatik regulär sind.
Eine Sprache heißt kontextfrei genau dann, wenn
es eine reguläre Grammatik gibt, die diese
Sprache erzeugt.
Um nachzuweisen, dass eine Sprache kontextfrei
ist, reicht es aus, eine reguläre Grammatik zur
Sprache zu konstruieren. Auch wenn man noch keine
kontextfreie Grammatik zu einer Sprache gefunden
hat, so heißt das noch nicht, dass die Sprache
nicht-kontextfrei ist.
nicht-kontextfreie Grammatik für LMyXML
27
Theorie - kontextfreie Sprachen
Satz (Zusammenhang zwischen kontextfreien
Sprachen und Kellerautomaten) Zu jeder
kontextfreien Sprache gibt es einen
nichtdeterministischen Kellerautomaten, der diese
Sprache erkennt. Der Kellerautomat kann
automatisiert aus einer kontextfreien Grammatik
zur kontextfreien Sprache erzeugt werden.
S -gt aSb S -gt ?
28
Theorie - kontextfreie Sprachen
S -gt aSb S -gt ?
Ableitung mit der Grammatik
S -gt aSb -gt aaSbb -gt aabb
Zustand Kellerinhalt Eingabewort -------------
----------------------------------- q0 Z
aabb ?,ZSZ q1 SZ
aabb ?,SaSb q1 aSbZ aabb
a,?a q1 SbZ abb ?,SaSb q1
aSbbZ abb a,?a q1 SbbZ
bb ?,S? q1 bbZ bb
b,?b q1 bZ b b,?b q1 Z
?,Z? q2
Zustandsübergänge beim Kellerautomaten
Beachte, dass alle Produktionen der Grammatik in
den Zustandsübergängen des Kellerautomaten
kodiert sind. Der Kellerauromat ist so
konstruiert, dass jede Ableitung mit Produktionen
der Grammatik G mit Hilfe von Zustansübergängen
des Kellerautomaten simuliert werden kann.
29
Theorie kontextfreie Sprachen
Satz (Zusammenhang zwischen Kellerautomaten und
kontextfreien Sprachen) Die Sprache eines
nichtdeterministischen Kellerautomaten ist
kontextfrei Zum nichtdeterministischen
Kellerautomaten gibt es eine kontextfreie
Grammatik, die dieselbe Sprache erzeugt, die vom
Kellerautomaten erkannt wird. Man kann diese
kontextfreie Grammatik automatisiert erzeugen.
S -gt LD A -gt a B -gt b L -gt FB D -gt ? F -gt AL L -gt
?
30
nicht-/deterministische Kellerautomaten
Nichtdeterministische Kellerautomaten sind
mächtiger als deterministische Kellerautomaten.
Es gibt kontextfreie Sprachen, die zwar von
nichtdeterministischen, nicht jedoch von
deterministischen Kellerautomaten erkannt werden.
S -gt 0S0 S -gt 1S1 S -gt ?
31
Teil 3
Exkurs Shift-Reduce-Parser
32
Kellerautomat für eine Rechtsableitung
Wir betrachten die Sprache LRA der vereinfachten
Rechenausdrücke mit der Grammatik G .
33
Rechtsableitung eines Wortes
A -gt AS A -gt S S -gt SF S -gt F F -gt (A) F -gt z
A reduce by A -gt AS -gt
AS reduce by S -gt SF -gt ASF
reduce by F -gt (A) -gt AS(A)
reduce by A -gt AS -gt AS(AS) reduce by
S -gt F -gt AS(AF) reduce by F -gt z -gt
AS(Az) reduce by A -gt S -gt AS(Sz)
reduce by S -gt F -gt AS(Fz) reduce by F
-gt z -gt AS(zz) reduce by S -gt F -gt
AF(zz) reduce by F -gt z -gt Az(zz)
reduce by A -gt S -gt Sz(zz) reduce by
S -gt F -gt Fz(zz) reduce by F -gt z -gt
zz(zz)
Die gezeigte Ableitung ist eine sogenannte
Rechtsableitung. In jedem Ableitungsschritt wird
das am weitesten rechts stehende
Nichtterminalsymbol mit einer Regel aus G ersetzt.
34
Simulation mit einem Kellerautomaten
Kellerinhalt Eingabewort Aktion ------------
--------------------------------------------------
------------- Z zz(zz)
shift z zZ z(zz)
reduce by F -gt z FZ
z(zz) reduce by S -gt F SZ
z(zz) reduce by A
-gt S AZ z(zz)
shift AZ z(zz)
shift z zAZ (zz)
reduce by F -gt z FAZ (zz)
reduce by S -gt F SAZ
(zz) shift SAZ
(zz) shift ( (SAZ
zz) shift z z(SAZ
z) reduce by F -gt z F(SAZ
z) reduce by S -gt
F S(SAZ z) reduce
by A -gt S A(SAZ z)
shift A(SAZ z)
shift z zA(SAZ )
reduce by F -gt z FA(SAZ )
reduce by S -gt F SA(SAZ )
reduce by A -gt AS A(SAZ
) shift ) )A(SAZ
reduce by F -gt
(A) FSAZ
reduce by S -gt SF SAZ
reduce by A -gt AS AZ
A reduce by A -gt AS -gt
AS reduce by S -gt SF -gt ASF
reduce by F -gt (A) -gt AS(A)
reduce by A -gt AS -gt AS(AS) reduce by
S -gt F -gt AS(AF) reduce by F -gt z -gt
AS(Az) reduce by A -gt S -gt AS(Sz)
reduce by S -gt F -gt AS(Fz) reduce by F
-gt z -gt AS(zz) reduce by S -gt F -gt
AF(zz) reduce by F -gt z -gt Az(zz)
reduce by A -gt S -gt Sz(zz) reduce by
S -gt F -gt Fz(zz) reduce by F -gt z -gt
zz(zz)
35
Simulation mit einem Kellerautomaten
Kellerinhalt Eingabewort Aktion ------------
--------------------------------------------------
------------- Z zz(zz)
shift z zZ z(zz)
reduce by F -gt z FZ
z(zz) reduce by S -gt F SZ
z(zz) reduce by A
-gt S AZ z(zz)
shift AZ z(zz)
shift z zAZ (zz)
reduce by F -gt z FAZ (zz)
reduce by S -gt F SAZ
(zz) shift SAZ
(zz) shift ( (SAZ
zz) shift z z(SAZ
z) reduce by F -gt z F(SAZ
z) reduce by S -gt
F S(SAZ z) reduce
by A -gt S A(SAZ z)
shift A(SAZ z)
shift z zA(SAZ )
reduce by F -gt z FA(SAZ )
reduce by S -gt F SA(SAZ )
reduce by A -gt AS A(SAZ
) shift ) )A(SAZ
reduce by F -gt
(A) FSAZ
reduce by S -gt SF SAZ
reduce by A -gt AS AZ
reduce-Aktionen
shift-Aktionen
A -gt AS A -gt S S -gt SF S -gt F F -gt (A) F -gt z
Der Keller ist zu Beginn leer. Nach und nach
werden mit sogenannten shift-Aktionen Symbole des
Eingabeworts im Keller abgelegt. Wenn möglich,
wird dann mit einer sogenannten reduce-Aktion
eine Produktion rückwärts angewandt.
36
Praxistauglichkeit des Kellerautomaten
Als nachteilig erweisen sich beim gezeigten
Kellerautomaten die vielen nichtdeterministischen
Zustandsübergänge. Wenn man mit InputStep by
State ein Eingabewort wie z.B. zz(zz)
schrittweise analysiert, dann ergibt sich schnell
eine Vielzahl von möglichen Ableitungen.
37
Steuerung mit einer Parsingtabelle
Kellerinhalt Eingabewort Aktion ------------
--------------------------------------------------
------------- Z zz(zz)
shift z zZ z(zz)
reduce by F -gt z FZ
z(zz) reduce by S -gt F SZ
z(zz) reduce by A
-gt S AZ z(zz)
shift AZ z(zz)
shift z zAZ (zz)
reduce by F -gt z FAZ (zz)
reduce by S -gt F SAZ
(zz) shift SAZ
(zz) shift ( (SAZ
zz) shift z z(SAZ
z) reduce by F -gt z F(SAZ
z) reduce by S -gt
F S(SAZ z) reduce
by A -gt S A(SAZ z)
shift A(SAZ z)
shift z zA(SAZ )
reduce by F -gt z FA(SAZ )
reduce by S -gt F SA(SAZ )
reduce by A -gt AS A(SAZ
) shift ) )A(SAZ
reduce by F -gt
(A) FSAZ
reduce by S -gt SF SAZ
reduce by A -gt AS AZ
Kellerinhalt Eingabewort
Aktion -------------------------------------------
---------------------------- 0
zz(zz) s5
shift z 5z0
z(zz) r6
reduce by F-gtz 3F0
z(zz) r4
reduce by S-gtF 4S0
z(zz) r2
reduce by A-gtS 2A0
z(zz) s7
shift 72A0
z(zz) s5
shift z 5z72A0 (zz)
r6
reduce by F-gtz 3F72A0 (zz)
r4
reduce by S-gtF 10S72A0 (zz)
s8
shift 810S72A0 (zz) s1
shift
( 1(810S72A0 zz) ... 810S72A0
r3
reduce by S-gtSF 10S72A0
r1
reduce by A-gtAS 2A0
acc
accept A0

Die Aktionen des Kellerautomaten werden mit einer
sog. Parsingtabelle gesteuert.
38
Steuerung mit einer Parsingtabelle
Kellerinhalt Eingabewort
Aktion -------------------------------------------
---------------------------- 0
zz(zz) s5
shift z 5z0
z(zz) r6
reduce by F-gtz 3F0
z(zz) r4
reduce by S-gtF 4S0
z(zz) r2
reduce by A-gtS 2A0
z(zz) s7
shift 72A0
z(zz) s5
shift z 5z72A0 (zz)
r6
reduce by F-gtz 3F72A0 (zz)
r4
reduce by S-gtF 10S72A0 (zz)
s8
shift 810S72A0 (zz) s1
shift
( 1(810S72A0 zz) ... 810S72A0
r3
reduce by S-gtSF 10S72A0
r1
reduce by A-gtAS 2A0
acc
accept A0

ALGORITHMUS shift-reduce-Analyse lege 0 im
Stapel ab WIEDERHOLE zustand oberstes
Symbol im Stapel lookahead erstes Zeichen
im aktuellen Eingabewort aktion Eintrag in
der Parsingtabelle zum Paar (zustand, lookahead)
FALLS aktion shift i (kurz si)
entferne das erste Zeichen des Eingabeworts und
... ... lege es im Stapel ab lege
i im Stapel ab FALLS aktion reduce i
(kurz ri) entferne doppelt so viele
Symbole vom Stapel, ... ... wie Symbole
auf der rechten Seite von Produktion i stehen
zustand oberstes Symbol vom Stapel
symbol linke Seite von Produktion i
zustand Eintrag i. d. Parsingtabelle zum Paar
(zustand, symbol) lege symbol im Stapel
ab lege zustand im Stapel ab BIS aktion
acc oder aktion rej (bzw. leerer Eintrag)
39
Erzeugung einer Parsingtabelle
JFlap erzeugt zu (geeigneten) kontextfreien
Grammatiken eine passende Parsingtabelle.
40
Erkennung kontextfreier Sprachen
Viele Sprachen, die in der Praxis genutzt werden,
können durch kontextfreie Grammatiken beschrieben
werden. Automatisiert erzeugte Kellerautomaten
zur Erkennung solcher Sprachen sind meist
nichtdeterministisch und daher zum praktischen
Einsatz wenig geeignet. Zum Erkennen
kontextfreier Sprachen nutzt man in der Praxis
Shift-Reduce-Parser mit geeigneten
Parsingtabellen. Solche Shift-Reduce-Parser
benutzen - genau wie Kellerautomaten - einen
Keller / Stapel zum Zwischenspeichern von
Symbolen. Anders als Kellerautomaten nutzen sie
aber eine Art Vorschau auf das nächste zu
verarbeitende Eingabesymbol. Shift-Reduce-Parser
arbeiten deterministisch, d.h. sie können
Wortprobleme direkt - ohne Ausprobieren mehrerer
Möglichkeiten - lösen. Man kann jedoch nicht zu
jeder kontextfreien Grammatik einen passenden
Shift-Reduce-Parser automatisiert erzeugen. Nur
wenn die Grammatik eine bestimmte Gestalt hat,
ist eine automatisierte Erzeugung möglich.
Verfahren zur Erzeugung von Shift-Reduce-Parsern
sind komplex und werden daher hier nicht
behandelt.
41
Teil 4
Turingmaschinen
42
Vereinfachte XML-Ausdrücke
Die Sprache LMyXML soll vereinfachte XML-artige
Ausdrücke beschreiben. Jedes zu dieser Sprache
gehörende Wort soll aus einem Anfangstag, einem
Text und einem Endtag bestehen. Anfangs- und
Endtag sollen im Wesentlichen identisch sein. Die
Tag-Bezeichner sind beliebige nicht-leere
Zeichenketten, die nur aus den Buchstaben a und b
bestehen. Der Text zwischen den Anfangs- und
End-Tag soll nur aus den Buchstaben a, b und c
bestehen. Zur Sprache LMyXML gehört
beispielsweise das Wort ltabgtacaalt/abgt.
S -gt ltaATgtS -gt ltbBTgtT -gt aATT -gt bBTT -gt MAa
-gt aAAb -gt bAAM -gt MaBa -gt aBBb -gt bBBM -gt
MbM -gt gtNM -gt aMM -gt bMM -gt cMM -gt lt/
43
Grenzen von Kellerautomaten
Problem Kann man die Sprache LMyXML mit
Kellerautomaten erkennen?
ok
ltabgtacaalt/abgt
K
Fehler
ltabgtacaalt/bagt
Man kann zeigen, dass die Sprache LMyXML nicht
von einem (noch so komplizierten) Kellerautomaten
erkannt werden kann.
44
Ein mächtigere Verarbeitungsmodell
45
Ein mächtigere Verarbeitungsmodell
Aufgabe Teste das Verhalten des gezeigten
verallgemeinerten Automaten. Mit InputStep...
kannst du Eingabewörter wie z.B. ltabgtacaalt/abgt
eingeben, mit Step den Automaten dann
schrittweise das Eingabewort verarbeiten lassen.
Vergleiche das neue Verarbeitungsmodell - man
nennt es Turingmaschine - mit einem endlichen
Automaten. Was ist bei einer Turingmaschine
anders als bei einem endlichen Automaten? Versuche
auch, die Idee der gezeigten Turingmaschine zur
Erkennung von Wörtern der Sprache LMyXML
herauszufinden. Teste hierzu verschiedene, zur
Sprache gehörende und auch nicht gehörende Wörter
über dem Alphabet a, b, c, lt, gt. Beschreibe die
Verarbeitung in eigenen Worten.
46
Turingmaschine
Die gezeigte Verarbeitungseinheit befindet sich
stets in einem bestimmten Zustand. Sie verfügt
über ein nach rechts und links unbegrenztes Band,
auf dem sich zu Beginn das Eingabewort befindet.
Die einzelnen Zellen des Bandes können mit einem
Lese-/Schreibkopf angesteuert werden. Der
Lese-Schreibkopf kann sich jeweils einen Schritt
nach rechts und nach links bewegen (oder auch
stehen bleiben). Er kann den Inhalt einer Zelle
lesen und auch Symbole in Zellen schreiben.
geschriebene Bandsymbol
Bewegung des Lese-/Schreib-Kopfes
gelesene Bandsymbol
47
Fachkonzept - Turingmaschine
  • Eine (deterministische) Turingmaschineist eine
    Verarbeitungseinheit, die durch folgende
    Bestandteile festgelegt wird
  • eine nichtleere, endliche Menge von Zuständen
  • eine nichtleere, endliche Menge von
    Eingabesymbolen, die das Symbol Ø nicht enthält
  • eine nichtleere, endliche Menge von
    Bandsymbolen, die alle Eingabesymbole und auch
    das Symbol Ø für eine leere Zelle enthält
  • eine Überführungsfunktion, die dem aktuellem
    Zustand in Abhängigkeit von einem gelesenen
    Symbol den Folgezustand zuordnet, zudem das zu
    schreibende Symbol und die Bewegung des
    Lese-Schreibkopfes
  • einen ausgezeichneten Zustand - den
    Anfangszustand -
  • eine Menge von Endzuständen

Bei einer nichtdeterministischen Turingmaschine
müssen die Zustandsübergänge nicht eindeutig
sein.
48
Fachkonzept - Turingmaschine
Die Menge der Eingabesymbole einer Turingmaschine
kann als Alphabet einer Sprache aufgefasst
werden. Unter der Sprache einer Turingmaschine
versteht man die Menge aller Wörter aus
Eingabesymbolen, die die Turingmaschine vom
Anfangszustand in einen Endzustand überführen.
Wenn T eine gegebene Turingmaschine ist, dann
schreiben wir L(T) für die Sprache der
Turingmaschine T.
S (, )
L(T) (), (()), ((())), ...
49
Fachkonzept - Turingmaschine
Eine Turingmaschine ist also eine
Verarbeitungseinheit, die Symbole verarbeitet,
sich dabei stets in einem bestimmten Zustand
befindet und die zum Zwischenspeichern von
Symbolen ein unbegrenztes, beschreibbares und
nach rechts und links begehbares Band benutzt.
50
Bedeutung der Turingmaschine
Satz (Zusammenhang zwischen Turingmaschinen und
formalen Sprachen) Zu jeder formalen Sprache,
die mit einer Grammatik beschreibbar ist, gibt es
eine (nicht-) deterministische Turingmaschine,
der diese Sprache erkennt. Umgekehrt gibt es auch
zu jeder (nicht-) deterministischen
Turingmaschine eine Grammatik, die dieselbe
Sprache erzeugt, die von der Turingmaschine
erkannt wird.
Trotz dieser Mächtigkeit wird das
Verarbeitungsmodell Turingmaschine in der Praxis
nicht genutzt. Wegen der doch sehr
eingeschränkten Verarbeitungsmöglichkeiten einer
Turingmaschine werden die Verfahren zur Erkennung
von Sprachen schnell kompliziert und aufwendig.
Das Verarbeitungsmodell Turingmaschine hat eine
zentrale Bedeutung im Rahmen der Theoriebildung.
Die Verwendung beschränkt sich dabei nicht auf
den Kontext Spracherkennung, das
Verarbeitungsmodell wird auch bei Fragen der
Berechenbarkeit benutzt.
51
Übungen
Man kann zeigen, dass die Sprache L anbncn n
1, 2, 3, ... nicht mit einem Kellerautomaten
erkannt werden kann. Diese Sprache besteht aus
Wörtern, die wie folgt aufgebaut sind abc,
aabbcc, aaabbbccc, aaaabbbbcccc, ... Zeige, dass
diese Sprache mit einer Turingmaschine erkannt
werden kann. Erweitere hierzu die Turingmaschine
zur Erkennung von L anbn n 1, 2, 3, ....
52
Teil 5
Sprachklassen und Automatenklassen
53
Chomsky-Hierarchie
Typ Grammatik äquivalenter Automat 0 allgemein (ni
cht)deterministische Turingmaschine 1 kontextsensi
tiv nichtdet. linear beschr. Turingmaschine 2 kont
extfrei nichtdeterministischer Kellerautomat 3 reg
ulär (nicht)deterministischer endl. Automat
54
Literaturhinweise
F. Gasper, I. Leiß, M. Spengler, H. Stimm
Technische und theoretische Informatik. Bsv
1992. E. Modrow Automaten, Schaltwerke,
Sprachen. Dümmlers Verlag 1988. R. Baumann
Informatik für die Sekundarstufe II, Band 2.
Klett-Verlag 1993. Informatik heute, Band 2.
Schroedel-Verlag 1988. 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. S. H. Rodger, T. W. Finley JFLAP. Jones
and Bartlett Publishers 2006. ... Die Darstellung
hier orientiert sich an den Materialien auf den
Webseiten http//www.inf-schule.de
Write a Comment
User Comments (0)
About PowerShow.com