+ All Categories
Home > Documents > Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

Date post: 06-Apr-2015
Category:
Upload: elli-lause
View: 123 times
Download: 1 times
Share this document with a friend
50
Spracherkennung mit Automaten Klaus Becker 2013
Transcript
Page 1: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

Spracherkennung mit Automaten

Klaus Becker

2013

Page 2: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

2 Spracherkennung mit Automaten

0

11

0

Page 3: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

3 Teil 1

Spracherkennung mit endlichen Automaten

Page 4: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

4 Zahldarstellung in Python

Aufgabe: Welche Zeichenfolgen sind korrekt?

2.0

002.0

2.200

2.

.2

2.2.2

2e10

e10

.2e01

2e-1

2e1.0

2e+1

2E1

.e2

floatnumber:

exponent:

pointfloat:

exponentfloat:

intpart:

fraction:

digit:

Page 5: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

5

Sprachbeschreibung mit Produktionen

F -> P

F -> E

P -> R

P -> IR

P -> I.

E -> IX

E -> PX

I -> D

I -> DI

R -> .I

X -> eI

X -> e+I

X -> e-I

D -> 0

D -> 1…

floatnumber:

exponent:

pointfloat:

exponentfloat:

intpart:

fraction:

digit:

Produktionen

Page 6: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

6 Spracherkennung mit Produktionen

F -> P

F -> E

P -> R

P -> IR

P -> I.

E -> IX

E -> PX

I -> D

I -> DI

R -> .I

X -> eI

X -> e+I

X -> e-I

D -> 0

D -> 1… Aufgabe: Teste die Spracherkennung mit Hilfe von JFlap.

Page 7: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

7 Spracherkennung mit Produktionen

F -> P

F -> E

P -> R

P -> IR

P -> I.

E -> IX

E -> PX

I -> D

I -> DI

R -> .I

X -> eI

X -> e+I

X -> e-I

D -> 0

D -> 1… Produktionen

F -> # mit F->PP -> # mit P->I.I. -> # mit I->DIDI. -> # mit D->22I. -> # mit I->D2D. -> # mit D->121.

Ableitung mit „Intelligenz“

Page 8: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

8 Spracherkennung mit Produktionen

F -> P

F -> E

P -> R

P -> IR

P -> I.

E -> IX

E -> PX

I -> D

I -> DI

R -> .I

X -> eI

X -> e+I

X -> e-I

D -> 0

D -> 1… Produktionen

F -> P -> R -> .I # keine Fortsetzung möglich IR -> DR -> 0R # keine Fortsetzung möglich 1R # keine Fortsetzung möglich 2R 2.I # keine Fortsetzung möglich DIR -> ...

Ableitung nach der Brute-Force-Methode

Page 9: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

9

Spracherkennung mit einem Automaten

Wir betrachten zunächst vereinfachte Gleitkommazahlen, die nach den folgenden Regeln gebildet werden.

kommazahl ::= intpart "." intpart

intpart ::= digit+

digit ::= "0"|"1"|"2"

Die Spracherkennung bei den oben beschriebenen Kommazahlen lässt sich mit einem zustandsbasierten System durchführen, das sukzessive die einzelnen Zeichen der zu analysiedenden Zeichenkette verarbeitet.

Page 10: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

10

Spracherkennung mit einem Automaten

Aufgabe: Erkunde und teste die Spracherkennung mit einem zustandsbasierten System mit Hilfe von JFlap.

Page 11: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

11

Spracherkennung mit einem Automaten

Wir betrachten jetzt Gleitkommazahlen ohne Exponenten. Die Grammatikregeln für diese Zahlen erhält man, indem man in den Grammatikregeln für Python-Gleitkommazahlen die Regeln für "exponentfloat" weglässt.

pointfloat ::= [intpart] fraction | intpart "."

intpart ::= digit+

fraction ::= "." digit+

digit ::= "0"|"1"|"2"

Page 12: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

12

Spracherkennung mit einem Automaten

pointfloat ::= [intpart] fraction | intpart "."

intpart ::= digit+

fraction ::= "." digit+

digit ::= "0"|"1"|"2"

Aufgabe:Erkläre, wie die Spracherkennung mit dem zustandsbasierten System hier funktioniert.

Page 13: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

13 Fachkonzept - Akzeptor

Ein Akzeptor bzw. erkennender Automat ist eine Verarbeitungseinheit, die durch folgende Bestandteile festgelegt wird:

eine nichtleere, endliche Menge Z von Zuständen

eine nichtleere, endliche Menge E von Eingabesymbole

eine Überführungsfunktion f: Z x E -> Z, die jedem Paar aus aktuellem Zustand und Eingabe einen Folgezustand zuordnet

ein ausgezeichnetes Element z0 aus Z, der sogenannte Anfangszustand

einer Teilmenge ZE von Z, den sogenannten Endzuständen

Z = {q0, q1, q2, q3, q4, q5}

E = {., 0, 1, 2}

f: (q0, 0) -> q1; (q0, 1) -> q1; ...

z0 = q0

ZE = {q2, q3}

Page 14: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

14 Fachkonzept - Akzeptor

Die Menge E der Eingabesymbole eines Akzeptors A = (Z, E, f, z0, ZE) kann als Alphabet einer Sprache aufgefasst werden.

Unter der Sprache eines Akzeptors versteht man die Menge aller Wörter über dem Alphabet E, die den Automaten vom Anfangszustand z0 in einen Endzustand aus ZE überführen.

Wenn A = (Z, E, f, z0, ZE) ein gegebener Akzeptor ist, dann schreiben wir L(A) für die Sprache des Akzeptors A.

A = (Z, E, f, z0, ZE)

L(A) = {0, 1, 2, ..., 12., ...}

Z = {q0, q1, q2, q3, q4, q5}

E = {., 0, 1, 2}

f: (q0, 0) -> q1; (q0, 1) -> q1; ...

z0 = q0

ZE = {q2, q3}

Page 15: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

15 Fachkonzept - Akzeptor

Ein Akzeptor ist also eine Verarbeitungseinheit, die Symbole eines Eingabeworts verarbeitet und sich dabei stets in einem bestimmten Zustand befindet. Anhand des aktuellen Zustands kann dann festgestellt werden, ob das zu verarbeitende Eingabewort akzeptiert wird oder nicht.

Die Symbole des zu verarbeitenden Eingabeworts sind in einzelne Zellen eines Eingabebandes geschrieben. Bei der Berarbeitung des Eingabeworts werden die einzelnen Symbole des Worts mit einem Lesekopf erfasst. Abhängig vom jeweils gelesenen Symbol wird die eigentliche Verarbeitungseinheit in einen passenden Zustand versetzt. Die Verarbeitung endet, wenn der Lesekopf alle Symbole des Wortes erfasst hat. Befindet sich die Verarbeitungseinheit dann in einem Endzustand, so wird das Wort akzeptiert.

Page 16: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

16 Übungen

Aufgabe:

Binärzahlen sind Zahlen, die im Dualsystem / Zweiersystem dargestellt sind und daher nur die Symbole 0 und 1 zur Zahldarstellung benutzen. Die folgende Zahlenreihe beschreibt, wie man im Dualsystem / Zweiersystem zählt:

0, 1, 10, 11, 100, 101, 110, 111, 1000, ...

Binärzahlen sind Wörter über dem Alphabet Σ = {0, 1}. Die Sprache der Binärzahlen LBin besteht aus sämtlichen Wörtern über Σ = {0, 1}, die eine Binärzahl darstellen:

LBin = {0, 1, 10, 11, 100, 101, 110, 111, 1000, ...}

Entwickle einen erkennenden Automaten, der die Sprache Lbin erkennt.

Page 17: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

17 Übungen

Aufgabe:

Betrachte jetzt beliebige Python-Gleitkommazahlen. Hier eine Grammatik (in EBNF) für diese Zahlen (mit eingeschränktem Ziffernbereich):

floatnumber ::= pointfloat | exponentfloat

pointfloat ::= [intpart] fraction | intpart "."

exponentfloat ::= (intpart | pointfloat) exponent

intpart ::= digit+

fraction ::= "." digit+

exponent ::= "e" ["+" | "-"] digit+

digit ::= "0"|"1"|"2"

(a) Entwickle einen erkennenden Automaten, der genau die beschriebenen Gleitkommazahlen akzeptiert.

(b) Teste das entwickelte System mit verschiedenen Eingaben. Teste insbesondere auch lange Eingaben. Warum kann der Automat auch lange Eingaben sehr schnell verarbeiten?

Page 18: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

18 Übungen

Aufgabe:

Betrachte Binärwörter, die nur aus den Zeichen 0 und 1 bestehen.

(a) Entwickle einen erkennenden Automaten, der nur Binärwörter mit einer geraden Anzahl von Einsen akzeptiert.

(b) Entwickle einen erkennenden Automaten, der nur Binärwörter mit einer geraden Anzahl von Einsen und einer geraden Anzahl von Nullen akzeptiert.

Page 19: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

19 Übungen

Aufgabe:

Entwickle einen erkennenden Automaten, der Emoticons für ein lachendes Gesicht akzeptiert (siehe http://de.wikipedia.org/wiki/Emoticon):

:-)  :) =)  :]  :>  :c) x)  :o)

:-D  ;D  :D =D xD XD  :oD

Page 20: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

20 Übungen

AufgabeDie Stadt Karlsruhe vergibt ihre Autokennzeichen nach einem fest vorgegebenen Schema:

Beachte, dass die Nummer eines Autokennzeichens in Deutschland niemals mit der Ziffer 0beginnt. Somit ist beispielsweise eine Nummer "032" nicht möglicht!

Bewohner des direkten Stadtgebietes bekommen ein Kennzeichen, das aus der Zeichenfolge KA für die Stadt Karlsruhe, genau zwei beliebigen Buchstaben und einer dreistellige Zahl als Registrierungsnummer besteht (bsp.: KARG626).Bewohner des Landkreises Karlsruhe (also alles außerhalb des direkten Stadtgebiets) bekommen Kennzeichen, das nach der Zeichenfolge KA für die Stadt Karlsruhe wie folgt aufgebaut ist: Die Registrierungsnummer besteht aus ein oder zwei Buchstaben. Die folgende Zahl kann zwischen 1 und 9999 liegen. Allerdings darf die Zahl im Fall von 2 Buchstaben nicht dreistellig sein. Damit ist eine eindeutige Unterscheidungzwischen Fahrzeugen aus dem Stadtgebiet und dem Landkreis möglich.

Entwickle einen erkennenden Automaten, der die Kennzeichen der Stadt Karlsruhe akzeptiert.

Page 21: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

21 Ausblick - Theoriebildung

Wir betrachten die Sprache LEMail der stark vereinfachten E-Mail-Adressen, die durch folgende Syntaxdiagramme festgelegt wird. Beachte, dass in diesen Adressen nur die Symbole b, @ und . vorkommen dürfen. Eine nach diesen Syntaxdiagrammen gültige E-Mail-Adresse ist z.B. [email protected].

Problem:

Gibt es einen Akzeptor A, der die Sprache LEMail erkennt?

Aufgabe:

Versuche, einen Akzeptor A mit L(A) = LEMail zu konstruieren.

Emailadresse:

User:

Domain:

Subdomains:

Topleveldomain:

Name:

Buchstabe:

Page 22: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

22 Ausblick - Theoriebildung

Wir betrachten die Sprache LKlammer der stark vereinfachten Klammerausdrücke, die durch folgende Syntaxdiagramme festgelegt wird. Zur Sprache Lklamme gehören also alle Klammerausdrücke der Gestalt ((())), bei denen nach einer Folge öffnender Klammern genau so viele schließende Klammern folgen.Problem:

Gibt es einen Akzeptor A, der die Sprache LKlammer erkennt?

Aufgabe:

Versuche, einen Akzeptor A mit L(A) = LKlammer zu konstruieren.

Page 23: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

23 Teil 2

Endliche Automaten und reguläre Sprachen

Page 24: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

24 Fallstudie - Binärzahlen

Zusammenhänge zwischen Sprachen und Automaten lassen sich sehr gut mit dem Werkzeug JFlap erkunden. In einem ersten Schritt werden solche Zusammenhänge durch Experimente erkundet. In einen zweiten Schritt werden die Zusammenhänge dann aufgegriffen und präzisiert. Als Untersuchungsgegenstand wird in diesem Abschnitt die Sprache der Binärzahlen gewählt.

Binärzahlen sind Zahlen, die im Dualsystem / Zweiersystem dargestellt sind und daher nur die Symbole 0 und 1 zur Zahldarstellung benutzen. Die folgende Zahlenreihe beschreibt, wie man im Dualsystem / Zweiersystem zählt:

0, 1, 10, 11, 100, 101, 110, 111, 1000, ...

Binärzahlen sind Wörter über dem Alphabet Σ = {0, 1}. Die Sprache der Binärzahlen LBin besteht aus sämtlichen Wörtern über Σ = {0, 1}, die eine Binärzahl darstellen:

LBin = {0, 1, 10, 11, 100, 101, 110, 111, 1000, ...}

Page 25: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

25

JFlap: Vom Automaten zur Grammatik

Aufgabe: Wie wird die Grammatik aus dem Akzeptor erzeugt? Wenn du es verstanden hast, dann gib einen Automaten vor, erzeuge selbst die zugehörige Grammatik und überprüfe deinen Vorschlag.

Page 26: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

26

JFlap: Von der Grammatik z. Automaten

Aufgabe: Wie der Akzeptor aus der Grammatik erzeugt? Wenn du es verstanden hast, dann gib eine Grammatik vor, erzeuge selbst den zugehörigen Akzeptor und überprüfe deinen Vorschlag.

Page 27: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

27 Reguläre Sprachen

S -> 0BB -> λS -> 1AA -> 0AA -> 1AA -> λ

Zum erkennenden Automaten A lässt sich die Grammatik GA erzeugen. Es fällt auf, dass alle Produktionen dieser Grammatik GA eine bestimmte Struktur haben.

S -> 0B

Terminalsymbol

Nichtterminalsymbol

Nichtterminalsymbol

A -> λ

Nichtterminalsymbol

leeres Wort

Page 28: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

28 Fachkonzept - reguläre Sprache

Eine Produktion u -> v heißt regulär genau dann, wenn gilt: Die linke Seite u der Produktion ist ein Nichtterminalsymbol. Die rechte Seite v der Produktion besteht aus einem Terminalsymbol gefolgt von einem Nichtterminalsymbol, oder sie besteht nur aus dem leeren Wort.Eine Grammatik heißt regulär genau dann, wenn alle Produktionen der Grammatik regulär sind.

Eine Sprache heißt regulär genau dann, wenn es eine reguläre Grammatik gibt, die diese Sprache erzeugt.

S -> 0BB -> λS -> 1AA -> 0AA -> 1AA -> λ

S -> 0S -> 1RR -> ZRR -> λZ -> 0Z -> 1

reguläre Grammatik für LBin

nicht-reguläre Grammatik für LBin

LBin = {0, 1, 10, 11, 100, 101, 110, 111, ...}

Beachte, dass es zu einer regulären Sprache durchaus nicht-reguläre Grammatiken geben kann. Um nachzuweisen, dass eine Sprache regulär ist, reicht es aus, eine reguläre Grammatik zur Sprache zu konstruieren. Zu einer Sprache kann man stets eine Vielzahl von Grammatiken angeben. Auch wenn man noch keine reguläre Grammatik zu einer Sprache gefunden hat, so heißt das noch nicht, dass die Sprache nicht-regulär ist.

Page 29: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

29 Nichtdeterministischer Automat

A -> 1BA -> 0CA -> 1CC -> λB -> 0BB -> 1BB -> 0DB -> 1DD -> λ

Zur Grammatik G lässt sich ein Automat AG erzeugen. Es fällt auf, dass dieser Automat kein endlicher Automat im bisherigen Sinne ist.

nichtdeterministische Zustandsübergänge

Zustandsübergänge ohne Eingaben

Page 30: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

30

Fachkonzept - Nichtdeterm. Automat

Einen endlichen Automaten, der nichtdeterministische Zustandsübergänge und λ-Übergänge zulässt, nennt man nichtdeterministischen endlichen Automaten (kurz: NFA für nondeterministic finite automaton). Entsprechend nennt man einen endlichen Automaten, der keine nichtdeterministische Zustandsübergänge und keine λ-Übergänge enthält, einen deterministischen endlichen Automaten (kurz: DFA für deterministic finite automaton).

nichtdeterministischer endlicher Automat

deterministischer endlicher Automat

Page 31: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

31 Spracherkennung mit einem NFA

Spracherkennung mit nichtdeterministischen Automaten funktioniert so ähnlich wie Spracherkennung mit deterministischen Automaten. Man muss nur alle möglichen Zustandsübergänge für eine Eingabe durchspielen. Wenn nach der Verarbeitung des gesamten Eingabeworts ein Endzustand erreicht werden kann, dann gilt die Eingabe als akzeptiert, ansonsten als nicht akzeptiert.

Page 32: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

32

Zusammenhang zwischen DFA und NFA

Satz (Zusammenhang zwischen deterministischen und nichtdeterministischen Automaten):Zu jedem nichtdeterministischen erkennenden Automaten gibt es einen deterministischen erkennenden Automaten, der dieselbe Sprache erkennt. Man kann den deterministischen erkennenden Automaten automatisiert aus dem nichtdeterministischen erkennenden Automaten erzeugen.

Page 33: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

33

Theorie - reg. Sprachen und Automaten

Satz (Zusammenhang zwischen deterministischen Automaten und regulären Sprachen):

Die Sprache eines deterministischen erkennenden Automaten (Akzeptors) ist regulär: Zum deterministischen erkennenden Automaten gibt es eine reguläre Grammatik, die dieselbe Sprache erzeugt, die vom Automaten erkannt wird. Man kann diese reguläre Grammatik automatisiert erzeugen.

S -> 0BB -> λS -> 1AA -> 0AA -> 1AA -> λ

Page 34: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

34

Theorie - reg. Sprachen und Automaten

Satz (Zusammenhang zwischen regulären Sprachen und nichtdeterministischen Automaten):

Zu jeder regulären Sprache gibt es einen nichtdeterministischen erkennenden Automaten, der diese Sprache erkennt. Der nichtdeterministische erkennende Automat kann automatisiert aus einer reguläre Grammatik zur regulären Sprache erzeugt werden.

A -> 1BA -> 0CA -> 1CC -> λB -> 0BB -> 1BB -> 0DB -> 1DD -> λ

Satz (Zusammenhang zwischen regulären Sprachen und deterministischen Automaten):

Zu jeder regulären Sprache gibt es einen deterministischen erkennenden Automaten, der diese Sprache erkennt. Der deterministische erkennende Automat kann automatisiert aus einer reguläre Grammatik zur regulären Sprache erzeugt werden.

Page 35: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

35 Anwendung der Theorie

Problem:Gibt es einen Akzeptor A, der die Sprache LEMail (die durch die Syntaxdiagramme festgelegt wird) erkennt?

Lösung:Nach dem Satz über den Zusammenhang zwischen regulären Sprachen und deterministischen Automaten gibt es zu dieser Grammatik einen deterministischen erkennenden Automaten, der die von der Grammatik erzeugte Sprache erkennt. Dieser Automat kann auch Schritt für Schritt erzeugt werden.

E -> U@DU -> ND -> STS -> N.S -> N.ST -> bbN -> BN -> BNB -> b

E -> bUU -> bUU -> @SS -> bBB -> bBB -> .SB -> .TT -> bZZ -> b

E -> bUU -> bUU -> @SS -> bBB -> bBB -> .SB -> .TT -> bZZ -> bXX -> λ

regulär

Aufgabe:Erzeuge einen Akzeptor A, der die Sprache LEMail erkennt.

Page 36: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

36 Anwendung der Theorie

Problem:Gibt es einen Akzeptor A, der die Sprache LEMail (die durch die Syntaxdiagramme festgelegt wird) erkennt?

Lösung:Der Automat zur Erkennung von LEMail ist nichtdeterministisch. Nach dem Satz über den Zusammenhang zwischen deterministischen und nichtdeterministischen Automaten gibt es einen deterministischen erkennenden Automaten, der dieselbe Sprache erkennt. Dieser Automat kann auch Schritt für Schritt (z.B. mit Hilfe von JFlap) erzeugt werden.

NFA

Aufgabe:Erzeuge einen Akzeptor A, der die Sprache LEMail erkennt.

Page 37: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

37

JFlap: Vom reg. Ausdruck z. Automaten

JFlap kann aus einem regulären Ausdruck einen endlichen Automaten erzeugen. Der Erzeugungsprozess ist bei komplexeren regulären Ausdrücken schwer zu durchschauen. Einfacher geht das, wenn man nur Teilausdrücke von Jflap verarbeiten lässt, z.B. die regulären Ausdrücke 10 (als Beispiel für eine Konkatenation), 0+1 (als Beispiel für eine Alternative) und 1* (als Beispiel für eine Iteration). Probiere das einmal aus und versuche, das Umwandlungsverfahren zu beschreiben.

Page 38: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

38

JFlap: Vom Automaten z. reg. Ausdruck

JFlap kann ebenfalls aus einem endlichen Automaten einen regulären Ausdruck erzeugen. Probiere das einmal aus.

Page 39: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

39

Vom regulären Ausdruck z. Automaten

Ø ist ein regulärer Ausdruck.

λ ist ein regulärer Ausdruck.

Er beschreibt die leere Wortmenge {}.

Er beschreibt die Wortmenge {λ}, in der nur das leere Wort vorkommt.

Für jedes a aus Σ ist a ein regulärer Ausdruck.

Der reguläre Ausdruck a beschreibt die Wortmenge {a}.

Wenn α und β reguläre Ausdrücke sind, dann ist auch die Konkatenation αβ ein regulärer Ausdruck.

Wenn α die Wortmenge A und β die Wortmenge B beschreibt, dann beschreibt die Konkatenation αβ die Menge {ab | a aus A und b aus B} aller Wörter, die mit einem Wort aus A beginnen und mit einem Wort aus B enden.

Page 40: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

40

Vom regulären Ausdruck z. Automaten

Wenn α und β reguläre Ausdrücke sind, dann ist auch die Alternative α+β ein regulärer Ausdruck.

Wenn α die Wortmenge A und β die Wortmenge B beschreibt, dann beschreibt die Alternative α+β die Menge {w | w aus A oder w aus B} aller Wörter, die in A oder in B vorkommen.

Wenn α ein regulärer Ausdruck ist, dann ist auch die Iteration α* ein regulärer Ausdruck.

Wenn α die Wortmenge A beschreibt, dann beschreibt die Iteration α* die Menge A* aller Wörter, die durch endlich-maliges Aneinanderfügen von Wörtern aus A entstehen.

Page 41: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

41

Theorie - reg. Ausdrücke u. Automaten

Satz (Zusammenhang zwischen regulären Ausdrücken u. (nicht)deterministischen Automaten):

Zu jedem regulären Ausdruck gibt es einen nichtdeterministischen erkennenden Automaten (und folglich auch einen deterministischen erkennenden Automaten), der die vom regulären Ausdruck beschriebene Sprache erkennt. Der (nicht)deterministische erkennende Automat kann automatisiert aus dem regulären Ausdruck erzeugt werden.

0+1(0+1)*

Aufgabe: Entwickle analog einen endlichen Automaten, der die Sprache zum regulären Ausdruck a(a+b)*ab erkennt.

Page 42: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

42

Theorie - reg. Ausdrücke u. Automaten

Satz (Zusammenhang zwischen (nicht)deterministischen Automaten u. regulären Ausdrücken):

Zu jedem nichtdeterministischen erkennenden Automaten (und folglich auch deterministischen erkennenden Automaten) gibt es einen regulären Ausdruck, der die vom (nicht)deterministische Automat erkannte Sprache beschreibt. Der reguläre Ausdruck kann automatisiert aus dem erkennenden Automaten erzeugt werden.Satz (über reguläre Sprachen und endliche Automaten):

Die Klasse der Sprachen, die mit einer regulären Grammatik beschrieben werden können, ist identisch mit der Klasse der Sprachen, die mit einem regulären Ausdruck beschrieben werden können, ebenso mit der Klasse der Sprachen, die von deterministischen endlichen Automaten erkannt werden können, und ebenso mit der Klasse der Sprachen, die von nichtdeterministischen endlichen Automaten erkannt werden können.

Page 43: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

43 Aufwand bei der Spracherkennung

Grammatiken und reguläre Ausdrücke dienen zur Beschreibung von Sprachen. Sie sind nicht auf schnelle Spracherkennung optimiert. Das zeigt sich, wenn man Experimente mit JFlap durchführt.

Page 44: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

44 Aufwand bei der Spracherkennung

Wenn man einen deterministischen endlichen Automaten zur Spracherkennung benutzt, dann erhält man ohne Wartezeiten direkt eine Rückmeldung.

Page 45: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

45 Grenzen von endlichen Automaten

Problem: Gesucht ist ein endlicher Automat, der die der Klammerausdrücke erkennt.

A

ok(((())))

Fehler((())

Versuche, einen solchen endlichen Automaten A zu konstruieren, scheitern an der Schwierigkeit, die Anzahl der öffnenden Klammern im Automaten mitzuzählen. Es scheint, dass diese Schwierigkeit bei endlichen Automaten - die ja eine feste Anzahl von Zuständen haben - unüberwindbar ist.

Die folgende Argumentation zeigt, dass das tatsächlich der Fall ist. Wir benutzen dabei einen Beweis durch Widerspruch. Wir nehmen an, dass es einen Automaten A gibt, der die Sprache der Klammerausdrücke erkennt und führen diese Annahme dann zu einem Widerspruch. Die Annahme muss folglich falsch sein.

aaaabbbb

aaabb

Page 46: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

46 Grenzen von endlichen Automaten

Gibt es einen endlichen Automaten, der L = {anbn | n = 1, 2, 3, ...} erkennt?

DFA

ok(((())))

Fehler((())

Angenommen, es gibt einen endlichen Automaten A mit L(A) = L. Dieser Automat A hat eine feste Anzahl Zustände, etwa m = 15 (die Zahl 15 ist hier willkürlich gewählt, sie spielt für die Argumentation keine Rolle).

Wie wählen nun ein Wort w = akbk aus L = {anbn | n = 1, 2, 3, ...} aus mit k > m, etwa k = 16. Bei der Abarbeitung des Wortes w = akbk muss bereits bei der Verarbeitung der 16 a's mindestens ein Zustand z mindestens zweimal durchlaufen werden, denn es gibt mehr a's als Zustände.

Wir nehmen einmal an, dass der Zustand z mit dem dritten a und mit dem siebten a erreicht wird. Für die folgende Argumentation ist nicht entscheidend, mit welchen a's man z erreicht, sondern nur, dass z zweimal durchlaufen wird.

Es entsteht eine Schleife, die erst mit dem ersten b wieder verlassen wird. Wie die 16 b's den Automaten in einen Endzustand bringen, ist für die Argumentation ohne Belang.

aaaabbbb

aaabb

Page 47: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

47 Grenzen von endlichen Automaten

Die folgende Grafik soll die Situation verdeutlichen:- A hat m Zustände (hier m = 15).- A akzeptiert w = akbk mit k > m (hier w = a16b16).- Bei d. Verarbeitung des a-Anfangsteils von w wird ein Zustand mindestens zweimal durchlaufen werden (hier wird q3 insgesamt 4 mal durchlaufen).

Weitere spezielle Eigenschaften von A, die in der Grafik zu erkennen sind, sind für den Beweisgang nicht von Bedeutung.

Grafik entnommen aus: http://hsg.region-kaiserslautern.de/faecher/inf/material/automaten/anbn/index.php

Page 48: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

48 Grenzen von endlichen Automaten

Dem Bild kann man direkt entnehmen, dass neben w = a16b16 auch andere Wörter wie a4b16 (Schleife wurde nicht durchlaufen) oder auch a8b16 (Schleife wurde einmal durchlaufen) akzeptiert werden.

Der Automat akzeptiert folglich auch Wörter, die nicht zu L = {anbn | n = 1, 2, 3, ...} gehören. Das steht aber im Widerspruch zur Annahme, dass der Automat A die Sprache L = {anbn | n = 1, 2, 3, ...} erkennt.

Da die Annahme, dass es einen endlichen Automaten gibt, der die Sprache L = {anbn | n = 1, 2, 3, ...} erkennt, zu einem Widerspruch führt, muss die Annahme falsch sein.

Page 49: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

49 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.

Page 50: Spracherkennung mit Automaten Klaus Becker 2013. 2 Spracherkennung mit Automaten 0 11 0.

50 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


Recommended