Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Formale Sprachen Teil 2 Klaus Becker 2006. 2 Theorie formaler Sprachen Komplexität von Grammatiken Automatenmodelle Zusammenhänge zwischen Grammatiken.

Ähnliche Präsentationen


Präsentation zum Thema: "Formale Sprachen Teil 2 Klaus Becker 2006. 2 Theorie formaler Sprachen Komplexität von Grammatiken Automatenmodelle Zusammenhänge zwischen Grammatiken."—  Präsentation transkript:

1 Formale Sprachen Teil 2 Klaus Becker 2006

2 2 Theorie formaler Sprachen Komplexität von Grammatiken Automatenmodelle Zusammenhänge zwischen Grammatiken und Automaten A [B B ] B (C C xD D )B S (T) T T (T) S aAS S bBS S c Aa aA Ab bA Ac ca Ba aB Bb bB Bc cB

3 3 Beispiel: Klammersprachen Korrekt geklammerte Rechenausdrücke: (56 – 34) * 17 ((34 – 17) * ( )) (((45 – 6) * (67 / 5)) – (6 * 5))... HTML-Dokument:... Weiterbildungskurse Informatik Der Weiterbildungslehrgang Inf.... Der Lehrgang besteht... Der Lehrgang schliesst... XML-Dokument: grammar S a S A A a

4 4 Zielsetzung und Vorgehensweise Ziel ist es, die Beschreibung von Klammersprachen mit Hilfe von Grammatiken und die Erkennung von Klammersprachen mit Hilfe von Automaten genauer zu untersuchen. Diese Untersuchungen führen direkt zur Theorie über formale Sprachen und Automaten. Um den Arbeits- und Schreibaufwand etwas zu verringern, werden die zu betrachtenden Sprachen zunächst strukturgetreu vereinfacht.

5 5 Teil 1 Reguläre Sprachen

6 6 Vereinfachtes HTML Informelle Beschreibung: Ein vereinfachtes HTML-Dokument besteht aus einem Kopf mit Titelangabe und einem Rumpf mit Abschnitten. Es sind keine Umlaute erlaubt. Es sollen auch keine Tabellen, Links, Bilder etc. integriert werden. Der unten abgebildete HTML-Quelltext ist in diesem Sinne ein vereinfachtes HTML-Dokument. Weiterbildungskurs Informatik Der Weiterbildungslehrgang Informatik in Rheinland-Pfalz ist ein Ersatzstudium der Informatik für Lehrerinnen und Lehrer, die bereits eine Lehrbefaehigung in einem naturwissenschaftlichen Fach haben. Der Lehrgang besteht aus sechs Wochenkursen, in denen jeweils typische Themen der Informatik bearbeitet werden. Der Lehrgang schliesst dann mit einer Pruefung zum Erwerb der Unterrichtserlaubnis fuer das Grundfach Informatik ab.

7 7 Strukturanalyse Klammerstruktur: Hier werden verschiedene Sorten von Klammern benutzt. Die verschiedenen Klammersorten können geschachtelt werden, aber nur in einer bestimmten Form. Der Rumpf-Teil hat z. B. die Struktur Wir abstrahieren im Folgenden von der Darstellung der Klammern und betrachten Klammerausdrücke der Gestalt [(x)(x)...(x)]. Der Weiterbildungslehrgang... in einem naturwissenschaftlichen Fach haben. Der Lehrgang besteht aus... Themen der Informatik bearbeitet werden. Der Lehrgang schliesst... fuer das Grundfach Informatik ab. Klammersprache K3: Das Alphabet von K3 ist die Zeichenmenge { [, ], (, ), x }. Zu K3 gehören alle Wörter über dem Alphabet { [, ], (, ), x }, die mit [ beginnen, dann eine beliebige Anzahl (evtl. auch 0) von Ausdrücken der Gestalt (x) enthalten und mit ] enden. Bsp.: [], [(x)], [(x)(x)], [(x)(x)(x)],...

8 8 Aufgabe Entwickeln Sie eine (mehrere) Grammatik(en) zur Beschreibung der Klammersprache K3. Entwickeln Sie auch einen (mehrere) endliche Automaten zur Erkennung der Klammersprache K3.

9 9 Beschreibung und Erkennung von K3 Klammersprache K3: Das Alphabet von K3 ist die Zeichenmenge { [, ], (, ), x }. Zu K3 gehören alle Wörter über dem Alphabet { [, ], (, ), x }, die mit [ beginnen, dann eine beliebige Anzahl (evtl. auch 0) von Ausdrücken der Gestalt (x) enthalten und mit ] enden. Bsp.: [], [(x)], [(x)(x)], [(x)(x)(x)],... [ q0q1q2 q3q4 ] x () Grammatik G1 für K3: A [] A [B] B C B CB C (x) Grammatik G2 für K3: A [B B ] B (C C xD D )B Endlicher Automat für K3: K3GR1.jff K3GR2.jff

10 10 Erkennung von K3 [ q0q1q2 q3q4 ] x () Grammatik G1 für K3: A [] A [B] B C B CB C (x) Grammatik G2 für K3: A [B B ] B (C C xD D )B Endlicher Automat für K3: Beobachtung: Es fällt auf, dass die Grammatik G2 genau das Verhalten des endlichen Automaten A mit Hilfe von Produktionen nachbildet. A B K3GR1.jff K3GR2.jff CD

11 11 Aufgabe Öffnen Sie die Datei K3GR2.jff. Lassen Sie JFlap zu dieser Grammatik automatisch einen endlichen Automaten erzeugen:. Gehen Sie auch umgekehrt vor und lassen Sie sich von JFlap zum Automaten K3DA1.jff die entsprechende Grammatik erzeugen.

12 12 Aufgabe Öffnen Sie die Datei K3GR1.jff. Lassen Sie JFlap zu dieser Grammatik automatisch einen endlichen Automaten erzeugen:. Warum funktioniert das nicht?

13 13 Aufgabe 1 q0q1 q2 0 Wir betrachten die Sprache der Binärzahlen. Entwickeln Sie eine Grammatik zu dieser Sprache, die das Verhalten des gezeigten endlichen Automaten mit Hilfe von Produktionen nachbildet. Testen Sie Ihren Lösungsvorschlag mit Hilfe von JFlap. 1010

14 14 Aufgabe Wir betrachten die Sprache der Binärzahlen. Versuchen Sie jetzt, umgekehrt zu einer Grammatik für diese Sprache einen entsprechenden endlichen Automaten zu entwickeln. Testen Sie Ihren Lösungsvorschlag mit Hilfe von JFlap. Was fällt hier auf? A 0 A 1 A 1B B 0B B 1B B 0 B 1

15 15 Rechtlineare Grammatik Eine Produktion heißt rechtslinear genau dann, wenn auf der linken Seite ein Nichtterminalsymbol steht und die rechte Seite folgende Gestalt hat: - ein Terminalsymbol gefolgt von einem Nichtterminalsymbolen oder - ein Terminalsymbol. alternativ: - ein Terminalsymbol gefolgt von einem Nichtterminalsymbolen oder - das leere Wort. Eine Grammatik heißt rechtslinear / regulär genau dann, wenn alle Produktionen der Grammatik rechtslinear sind. Beispiele für rechtslineare Produktionen: A 0A 1B B 0B 1 B 0BB 1B Beispiele für rechtslineare Produktionen: A 0CC A 1B B 0DB 1D D B 0BB 1B Beispiele für nicht-rechtslineare Produktionen: A 0B1A A1

16 16 Äquivalenzsatz Satz Zu jedem endlichen Automaten gibt es eine rechtslineare Grammatik, mit der die Sprache des Automaten erzeugt werden kann. Entsprechende Grammatik: A 1BA 0C B 0BB 1BB C 0DC 1D C D 0DD 1D Endlicher Automat: Idee: Zu jedem Zustandsübergang wird eine entsprechende Produktion gebildet. Zu jedem Endzustand wird eine entsprechende Produktion mit dem leeren Wort als rechter Seite hinzugefügt. 1 q0q1 q q A B CD

17 17 Schwierigkeit bei der Umkehrung Bei der Umwandlung einer rechtslinearen Grammatik in einen endlichen Automaten kann ein sog. nichtdeterministischer Automat entstehen. Von einem Zustand aus können bei gleicher Eingabe Übergänge in verschiedene Zustände erfolgen. Nichtdeterministischer Endlicher Automat: 1 q0q2 q Rechtslineare Grammatik A 1B A 0C A 1C C B 0BB 1B B 0DB 1DD q A B Nicht- determinismus C D

18 18 Nichtdeterministischer Endlicher Automat: Äquivalenzsatz Satz Zu jeder rechtslinearen Grammatik gibt es einen nichtdeterministischen endlichen Automaten, der die von der Grammatik erzeugte Sprache erkennt. Idee: Man geht wie oben beschrieben vor. 1 q0q2 q Rechtslineare Grammatik A 1B A 0C A 1C C B 0BB 1B B 0DB 1DD q A B Nicht- determinismus C D

19 19 Aufgabe Öffnen Sie die Datei BinZahlNA1.jff. Dieser nichtdeterministische Automat erkennt die Sprache der Binärzahlen. Lassen Sie diesen Automaten verschiedene Wörter verarbeiten (z. B. 1001). Machen Sie sich hieran die Arbeitsweise eines nichtdeterministischen Automaten klar.

20 20 Aufgabe Öffnen Sie die Datei BinZahlNA1.jff. Dieser nichtdeterministische Automat erkennt die Sprache der Binärzahlen. Lassen Sie JFlap diesen Automaten in einen deterministischen Automaten umwandeln:.

21 21 Äquivalenzsatz Satz Zu jedem nichtdeterministischen endlichen Automaten gibt es einen deterministischen endlichen Automaten, der dieselbe Sprache erkennt. Idee: Jede Menge von Zuständen des NEA ergibt einen Zustand des DEA. Nicht benötigte Zustände des DEA werden weggelassen.

22 22 Äquivalenzsatz Satz Zu jedem nichtdeterministischen endlichen Automaten gibt es einen deterministischen endlichen Automaten, der dieselbe Sprache erkennt. Bemerkung: 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. Folgerung: Deterministische und nichtdeterministische Automaten sind gleich mächtige Sprachverarbeitungsmodelle / erkennen dieselben Sprachen.

23 23 Aufgabe Öffnen Sie die Datei BinZahlDA2.jff. Dieser deterministische Automat erkennt die Sprache der Binärzahlen. Lassen Sie JFlap diesen Automaten in einen regulären Ausdruck umwandeln:. Exportieren Sie anschließend diesen regulären Ausdruck und lassen Sie ihn wieder in einen endlichen Automaten umwandeln. Was zeigen diese Experimente?

24 24 Äquivalenzsatz 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.

25 25 Reguläre Sprachen Eine Sprache heißt regulär genau dann, wenn sie durch einen regulären Ausdruck dargestellt werden kann. Bemerkung: Eine Sprache ist regulär genau dann, wenn sie - durch einen regulären Ausdruck dargestellt werden kann / - von einem deterministischen endlichen Automaten erkannt werden kann / - von einem nichtdeterministischen endl. Automaten erkannt werden kann / - von einer rechtslinearen Grammatik erzeugt werden kann. Die genannten Sprachbeschreibungs- bzw. Sprachverarbeitungskonzepte sind demnach alle gleich mächtig.

26 26

27 27 Teil 2 Kontextfreie Sprachen

28 28 Rechenausdrücke Rechenausdrücke können Klammern enthalten, mit denen die Reihenfolge von Berechnungen genau festgelegt wird. Beispiele für korrekt geklammerte Rechenausdrücke: ((56 – 34) * 17) ((34 – 17) * ( ))... Beispiele für inkorrekt geklammerte Rechenausdrücke: ) ) * 4 ((25 – 16) * 7...

29 29 Vereinfachte Rechenausdrücke Informelle Beschreibung: Wir betrachten nur Rechenterme, die vollständig geklammert sind. Jede Rechenoperation muss umklammert werden – wie z. B. bei (12+3). Eine Rechenoperation bezieht sich auf Zahlen oder Rechenterme – wie z. B. bei ((13 – 7) * 4). Rechenterme können beliebig komplex verschachtelt werden – wie z. B. bei (((45 – 6) * (67 / 5)) – (6 * 5)). Klammerstruktur: Zu jeder öffnenden Klammer muss es eine passend folgende schließende Klammer geben. Lässt man die eigentlichen Rechnungen weg, so ergeben sich Klammerausdrücke der Gestalt ((()())()). Klammersprache: Das Alphabet der Sprache ist die Zeichenmenge { (, ) }. Zur Sprache gehören alle Wörter über dem Alphabet { (, ) }, die zu jeder öffnenden Klammer die passende schließende Klammer haben. Bsp.: (), (()), (()()),..., ((())()(()(()()))),...

30 30 Aufgabe Wir vereinfachen die Klammersprache weiter (s. u.). Versuchen Sie, eine Grammatik zur Beschreibung von K2 sowie einen endlichen Automaten zur Erkennung von K2 zu entwickeln. Klammersprache K2: Das Alphabet von K2 ist die Zeichenmenge { (, ) }. Zu K2 gehören alle Wörter über dem Alphabet { (, ) }, die nach einer beliebigen Anzahl öffnender Klammern genau dieselbe Anzahl schließender Klammern enthält. Bsp.: (), (()), ((())), (((()))),... Bem.: Statt ( bzw. ) benutzt man häufig die Zeichen a bzw. b. Bsp.: Statt ((())) schreibt man aaabbb.

31 31 Beschreibung von Klammerausdrücken Eine Grammatik für K2 lässt sich leicht angeben: Klammersprache K2: Das Alphabet von K2 ist die Zeichenmenge { (, ) }. Zu K2 gehören alle Wörter über dem Alphabet { (, ) }, die nach einer beliebigen Anzahl öffnender Klammern genau dieselbe Anzahl schließender Klammern enthält. Bsp.: (), (()), ((())), (((()))),... Grammatik: S (A) A A (A) Schwieriger ist es dagegen, einen endlichen Automaten zur Erkennung von K2 anzugeben.

32 32 Erkennung von Klammerausdrücken Problem: Gesucht ist ein endlicher Automat, der die Sprache K2 der Klammerausdrücke erkennt. EA ok(((()))) Fehler((()) Schwierigkeit: Der endliche Automat (EA) muss sich merken, wie viele Klammern geöffnet sind. Zum Merken hat ein endlicher Automat nur Zustände zur Verfügung. Mit endlich vielen Zuständen kann man sich aber nicht beliebig viele geöffnete Klammern merken.

33 33 Die Sprache {a n b n |n aus IN} Satz Es gibt keinen endlichen Automaten, der die Klammersprache L = {a n b n | n 1} akzeptiert. Wir betrachten eine Sprache, die die Klammer-auf-Klammer-zu-Struktur abstrahierend beschreibt. Diese Sprache besteht aus den Wörtern über dem Alphabet {a, b}, bei denen auf eine bestimmte Anzahl von a´s (Klammer auf) genau dieselbe Anzahl von b´s (Klammer zu) folgt. Also: L = {ab, aabb, aaabbb, aaaabbbb,...} Im Folgenden soll nachgewiesen werden, dass kein noch so komplizierter oder spitzfindig ausgedachter Automat in der Lage ist, die Klammersprache L zu akzeptieren. Wir benutzen hierzu – wie in der Informatik üblich – ein mathematisches Beweisverfahren, also eine exakte, logisch zweifelsfreie Argumentationskette.

34 34 Beweis Annahme: Es gibt einen endlichen Automaten A, der L akzeptiert. A hat endliche viele Zustände. m bezeichne die Anzahl dieser Zustände. (Zur Illustration der Beweisidee gehen wir hier von m = 15 aus.) Wir betrachten jetzt ein Wort w = a k b k mit k > m. (Zur Illustration der Beweisidee gehen wir hier von k = 16 aus. D. h., w = a 16 b 16 besteht aus 16 a´s gefolgt von 16 b´s.) Das Wort w hat dann einen Anfangsteil, der mehr as 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. (Zur Illustration der Beweisidee gehen wir hier davon aus, dass der Zustand, der mit dem dritten a erreicht wird, auch wieder mit dem siebten a erreicht wird.). Somit ist eine Schleife entstanden, die erst mit Beginn des b- Endteils wieder verlassen wird.

35 35 Beweis Die folgende Grafik soll die Situation verdeutlichen: - A hat m Zustände (hier m = 15). - A akzeptiert w = a k b k mit k > m (hier w = a 16 b 16 ). - 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: kaiserslautern.de/faecher/ inf/material/automaten/ anbn/index.php

36 36 Beweis Der a-Anfangsteil lässt sich zerlegen in die Teile vor der Schleife, in der Schleife, nach der Schleife. Es gilt: w = a k b k = a p (a q ) i a r b k mit p+q*i+r=k (hier: w = a 16 b 16 = a 3 a 4 a 4 a 4 a 1 b 16 ). Die Zahl i beschreibt die Anzahl der Schleifendurchläufe beim gegebenen w. (In der Grafik erkennt man direkt, dass A auch w´ = a 4 b 16 oder w´´ = a 8 b 16 akzeptiert.) Grafik entnommen aus: kaiserslautern.de/faecher/ inf/material/automaten/ anbn/index.php

37 37 Beweis Wir betrachten ein w´ = a p (a q ) j a r b k mit einem j, das von i verschieden ist – z. B. j = i+1. Das neue Wort w´ hat dann mehr a´s als b´s. Jetzt 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 w´ mehr as als bs enthält). A akzeptiert also ein Wort, das nicht zur Sprache L = {a n b n | n 1} gehört. Das ist ein Widerspruch zur Annahme, dass A die Sprache L akzeptiert. Die Annahme muss daher falsch sein. Die Aussage des Satzes muss folglich wahr sein.

38 38 Folgerungen Es gibt Sprachen (wie z. B. die gezeigte Klammersprache), 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. Dieses Ergebnis zeigt insbesondere eine prinzipielle Grenze von endlichen Automaten auf: Sie sind nicht in der Lage, komplexere Sprachen wie z. B. eine Klammersprache zu erkennen.

39 39 Zielsetzung Um auch Klammersprachen erkennen zu können, muss das bisher betrachtete Automatenkonzept erweitert werden. Ziel der folgenden Betrachtungen ist es, ein erweitertes Automatenmodell und seine Spracherkennungsmöglichkeiten zu erkunden.

40 40 Aufgabe Starten Sie das Programm Automaton Simulator und öffnen Sie die Datei Klammersprache1 im Verzeichnis MaterialAutomatonSimulator. Lassen Sie den gezeigten erweiterten Automaten verschiedene abstrakte Klammerausdrücke wie aabb oder aaab oder aabbbb verarbeiten. Versuchen Sie herauszufinden, wie Spracherkennung mit diesem erweiterten Automaten funktioniert.

41 41 Ein Automat mit Zusatzspeicher öffnen aabb a öffnen aabb a öffnen aabb a schliessen aabb schliessen Keller Der Automat wird um einen Zusatzspeicher (Keller) erweitert, mit dem er sich die öffnenden Klammern merken kann. push a pop Kellerautomat

42 42 Keller / Stapel Ein Keller / Stapel ist ein Speicher, der nach dem LIFO-Prinzip (last in, first out) arbeitet.: push(...)toppop... auf den Stapel legen liefert das oberste Stapelelement das oberste Stapelelement entfernen

43 43 Kellerautomat – Version 1 Ein Kellerautomat ist ein um einen Kellerspeicher erweiterter Automat: - Der Kellerautomat verfügt zusätzlich über ein Kelleralphabet, das alle Zeichen enthält, die im Keller gespeichert werden können. - Die Zustandsübergänge hängen nicht nur von den Eingaben, sondern auch vom jeweils obersten Kellerzeichen ab. - Bei jedem Übergang wird eine Kelleroperation durchgeführt. Oberstes Kellerzeichen / Eingabezeichen: Kelleroperation Beim vorliegenden Kellerautomaten wird ein Wort genau dann akzeptiert, wenn der Keller nach Abarbeitung des Wortes leer ist.

44 44 Aufgabe Starten Sie das Programm JFLAP und öffnen Sie die Datei Klammersprache1 im Verzeichnis MaterialJFlap. Lassen Sie den gezeigten erweiterten Automaten verschiedene abstrakte Klammerausdrücke wie aabb oder aaab oder aabbbb verarbeiten. Was ist anders bei diesem Kellerautomaten?

45 45 Kellerautomat – Version 2 Z q0: öffnen aabb aZaZ q0: öffnen aabb aaZaaZ q0: öffnen aabb aZaZ q1: schliessen aabb q2: korrekt Endzustand AnfangszustandAktueller Zustand Oberstes Kellerzeichen Leere Eingabe Z Z Kellerstart- zeichen q1: schliessen a, Z; aZa, a; aa b, a;, Z; Z Oberstes Kellerzeichen Eingabe- zeichen neue Kellerzeichen

46 46 Kellerautomat – Version 2 Ein Kellerautomat ist ein um einen Kellerspeicher erweiterter Automat: - Der Kellerautomat verfügt zusätzlich über ein Kelleralphabet, das alle Zeichen enthält, die im Keller gespeichert werden können. Hierzu gehört auch das Kellerstartzeichen, das zu Beginn im Keller gespeichert ist. - Die Zustandsübergänge hängen nicht nur von den Eingaben, sondern auch vom jeweils obersten Kellerzeichen ab. - Bei jedem Übergang wird eine Kelleroperation durchgeführt. Das oberste Kellerzeichen wird dabei durch eine (ggf. leere) Folge neuer Zeichen ersetzt. - Oft erlaubt man zusätzlich, dass auch spontane Übergänge stattfinden können (d. h. dass leere Eingaben verarbeitet werden) und dass Zustandsübergänge nicht-deterministisch erfolgen können.

47 47 Kellerautomat – Version 2 Beim vorliegenden Kellerautomat wird ein Wort genau dann akzeptiert, wenn sich der Kellerautomat nach Abarbeitung des Wortes in einem Endzustand befindet. Eingabezeichen (evtl. leer), oberstes Kellerzeichen ; Folge von neuen Kellerzeichen

48 48 Aufgaben Entwickeln Sie einen Kellerautomaten, der verallgemeinerte Klammerausdrücke der folgenden Gestalt erkennt. Die Sprache dieser Klammerausdrücke wird im Folgenden K2´genannt. ((x)(x)), (((x)((x)))(x)) Entwickeln Sie einen Kellerautomaten, der vereinfachte Rechenausdrücke mit Binärzahlen erkennt. Bsp.: ((100 – 11) * 101) ((11010 – 101) * ( ))

49 49 Ein Blick auf die Grammatiken Wir betrachten Klammersprachen im Vergleich: Klammersprache K3: K3 = { [], [(x)], [(x)(x)], [(x)(x)(x)],... } Alphabet: { [, ], (, ), x }. Produktionen: A [] A [B] B C B CB C (x) Klammersprache K2´: K2´ = {((x)(x)), (((x)((x)))(x))... } Alphabet: { (, ), x }. Produktionen: A B A BA B (C) B (A) C x Anhand der Grammatiken kann man hier – zumindest auf den ersten Blick – nicht unterscheiden, welche der beiden Sprachen komplexer ist. Die Situation ändert sich, wenn man zur ersten Sprache eine einfachere Grammatik angibt.

50 50 Ein Blick auf die Grammatiken Wir betrachten Klammersprachen im Vergleich: Klammersprache K3: K3 = { [], [(x)], [(x)(x)], [(x)(x)(x)],... } Alphabet: { [, ], (, ), x }. Produktionen: A [B B ] B (C C xD D )B Klammersprache K2´: K2´ = {((x)(x)), (((x)((x)))(x))... } Alphabet: { (, ), x }. Produktionen: A B A BA B (C) B (A) C x Die Grammatik zur Sprache K3 ist rechtslinear, während die Grammatik zur Sprache K2´ eine komplexere Struktur hat. Auf der rechten Seite einer Produktion stehen hier komplexere Wörter aus Terminal- und Nichtterminalsymbolen.

51 51 Kontextfreie Grammatiken Beispiel für eine kontextfreie Grammatik: A B A BA B (C) B (A) C x Eine Produktion 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 Grammatik heißt kontextfrei genau dann, wenn alle Produktionen der Grammatik kontextfrei sind. Eine Sprache heißt kontextfrei genau dann, wenn sie mit Hilfe einer kontextfreien Grammatik beschrieben werden kann.

52 52 Suche nach einfachen Grammatiken Bemerkung: Zur Beschreibung einer Sprache lassen sich oft viele verschiedene Grammatiken angeben. Die einfachste mögliche Grammatik legt den Komplexitätsgrad der Sprache fest. Beispiel: K3 ist regulär, da es eine reguläre Grammatik zu dieser Sprache gibt. Klammersprache K3: K3 = { [], [(x)], [(x)(x)], [(x)(x)(x)],... } Alphabet: { [, ], (, ), x }. Produktionen: A [] A [B] B C B CB C (x) Klammersprache K3: K3 = { [], [(x)], [(x)(x)], [(x)(x)(x)],... } Alphabet: { [, ], (, ), x }. Produktionen: A [B B ] B (C C xD D )B

53 53 Aufgabe Geben Sie die Grammatik zur Klammersprache K2´ in JFlap ein. Lassen Sie JFlap dann diese Grammatik in einen nichtdeterministischen Kellerautomaten (convert CFG to PDA (LL)) übersetzen. Testen Sie diesen Kellerautomaten, indem Sie ihn das Wort ((x)((x))) überprüfen lassen. (fast run). Aus dem Ablaufprotokoll (trace) lässt sich erkennen, wie der Kellerautomat arbeitet.

54 54 Äquivalenzsatz Satz Eine Sprache ist kontextfrei genau dann, wenn sie von einem nichtdeterministischen Kellerautomaten erkannt wird. Beweis: Studium Beachte: Mit deterministischen Kellerautomaten kann man nur eine echte Teilmenge der kontextfreien Sprachen erkennen.

55 55 Teil 3 Kontextsensitive und allgemeine Sprachen

56 56 XML JFlap benutzt – wie viele andere Programme auch – die standardisierte Dokumentenbeschreibungssprache XML zur Darstellung der abzuspeichernden Strukturen. grammar S a S A A a

57 57 XML Die Extensible Markup Language (engl. für erweiterbare Auszeichnungs-Sprache), abgekürzt XML, ist ein Standard zur Erstellung maschinen- und menschenlesbarer Dokumente in Form einer Baumstruktur, der vom World Wide Web Consortium (W3C) definiert wird. Siehe: Wide Web Consortium grammar S a S A...

58 58 XML XML benutzt Tags zur Strukturierung von Dokumenten. Im Gegensatz zu HTML können hier beliebige Tags zur Strukturierung eingeführt werden. Wie bei HTML muss zu jedem Anfangstag ein passendes Endtag folgen. grammar S a S A A a

59 59 Vereinfachtes XML Informelle Beschreibung: Ein vereinfachtes XML-Dokument besteht aus ineinandergeschachtelten Elementen. Ein Element besteht aus einem Anfangstag, einem Bezeichner oder einer Elementliste und einem passenden Endtag. Ein Bezeichner besteht aus beliebigen alphanumerischen Zeichen. Der unten abgebildete XML-Quelltext ist in diesem Sinne ein vereinfachtes XML-Dokument. grammar S a S A A a

60 60 Strukturanalyse Klammerstruktur: Hier werden beliebig konstruierbare Sorten von Klammern benutzt. Die verschiedenen Klammersorten können beliebig geschachtelt werden. Es ist nur darauf zu achten, dass entsprechende Klammern auch zusammenpassen. grammar S a S A A a Im Folgenden betrachten wir den Aspekt, dass beliebig konstruierbare Klammern zusammenpassen. Bsp. für wohlgeformte Klammerausdrücke: grammar S a Bsp. für nicht-wohlgeformte Klammerausdr.: grammar grammar S

61 61 Aufgabe Wir vereinfachen die Klammersprache weiter (s. u.). Die unten gezeigte Grammatik beschreibt diese Sprache K1. Testen Sie dies zunächst mit Hilfe verschiedener Beispiele und Gegenbeispiele. Schauen Sie sich Ableitungen von Wörtern, die zu K1 gehören, genauer an und versuchen Sie zu verstehen, wie die Grammatik die zu K1 gehörenden Wörter erzeugt. S aAS S bBS S c Aa aA Ab bA Ac ca Ba aB Bb bB Bc cB Klammersprache K1: Das Alphabet von K1 ist die Zeichenmenge {a, b, c}. Zu K1 gehören alle Wörter über dem Alphabet {a, b, c}, die mit einem beliebigen Wort w über dem Alphabet {a, b} beginnen, die dann das Trennsymbol c enthalten und anschließend mit genau demselben Wort w enden. Bsp.: c, aca, abcab, bacba, abbacabba,...

62 62 Aufgabe Die Sprache L MyXML soll vereinfachte XML-artige Ausdrücke beschreiben. - Jedes zu L gehörende Wort soll aus einem Anfangstag, einem Text und einem Endtag bestehen. - Anfangs- und Endtag sollen 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 besteht nur aus den Buchstaben a, b und c bestehen. Beispiele: acaa... Entwickeln Sie ausgehende von der gezeigten Grammatik für K1 eine Grammatik für L MyXML.

63 63 Eine Grammatik für MyXML S S T aAT T bBT T M Aa aA Ab bA AM Ma Ba aB Bb bB BM Mb M >N M aM M bM M cM M < MyXML.jff

64 64 Grammatiken im Vergleich A B A BA B (x) B (A) S aAS S bBS S c Aa aA Ab bA Ac ca Ba aB Bb bB Bc cB Bisher stand auf der linken Seite einer Produktion immer ein einzelnes Nicht- Terminalsymbol. Die jetzt betrachteten Grammatiken enthalten ganze Wörter mit Terminal- und Nichtterminalsymbolen auf der linken Seite. K1.jff KlammerX.jff S S T aAT T bBT T M Aa aA Ab bA AM Ma Ba aB Bb bB BM Mb M >N N aN N bN N cN N < MyXML.jff

65 65 Allgemeine Produktionen Eine Produktion u v heißt allgemein genau dann, wenn u und v beliebige Wörter aus Terminal- und Nichtterminalsymbolen sind. Eine Produktion u v heißt (Wortlängen-)monoton genau dann, wenn u und v beliebige Wörter aus Terminal- und Nichtterminalsymbolen sind und wenn v mindestens so lang wie u ist. Eine Produktion u v heißt kontextsensitiv genau dann, wenn diese Produktion die Gestalt xAy xwy hat, wobei - A ein Nichtterminalsymbol ist und - x und y beliebige Wörter bestehend aus Terminal- und Nichtterminalsymbolen sind. - w ein beliebiges, nicht-leeres Wort bestehend aus Terminal- und Nichtterminalsymbolen ist. Beachte: Bei einer kontextsensitiven Produktion xAy xwy darf das Nichtterminalsymbol A nur dann durch das Wort w ersetzt werden, wenn A im Kontext x..y steht. Beachte, dass die Wörter x und y auch das leere Wort sein können.

66 66 Monotone und kontextsensitive Prod. N aN allgemein, monoton, kontextsensitiv, kontextfrei, rechtslinear S bBS allgemein, monoton, kontextsensitiv, kontextfrei, nicht rechtslinear Aa aA allgemein, monoton, nicht kontextsensitiv, nicht kontextfrei, nicht rechtslinear S S T aAT T bBT T M Aa aA Ab bA AM Ma Ba aB Bb bB BM Mb M >N N aN N bN N cN N < MyXML.jff Beachte: Jede rechtslineare Produktion ist kontextfrei. Jede kontextfreie Produktion ist kontextsensitiv....

67 67 Monotone / kontextsensitive Sprachen Eine Grammatik heißt allgemein genau dann, wenn alle Produktionen allgemein sind. Eine Grammatik heißt (Wortlängen-)monoton genau dann, wenn entweder alle Produktionen monoton sind, oder wenn alle Produktionen monoton sind außer S, sofern das Startsymbol S nie auf der rechten Seite einer Produktion vorkommt. Eine Grammatik heißt kontextsensitiv genau dann, wenn entweder alle Produktionen kontextsensitiv sind, oder wenn alle Produktionen kontextsensitiv sind außer S, sofern das Startsymbol S nie auf der rechten Seite einer Produktion vorkommt. Eine Sprache heißt monoton / kontextsensitiv genau dann, wenn sie von einer monotonen / kontextsensitiven Grammatik erzeugt wird.

68 68 Monotone und kontextsensitive Prod. S aAS S bBS S c Aa aA Ab bA Ac ca Ba aB Bb bB Bc cb S N a AS S N b BS S N c AN a N a A AN b N b A AN c N c N a BN a N a B BN b N b B BN c N c N b N a a N b b N c c AN a AD AD CD CD CN a CN a AN a Das Beispiel soll verdeutlichen, wie man von monotonen Produktionen zu kontextsensitiven Produktionen gelangt. AN b AF AF EF EF EN b EN b AN b AN c AH AF GH GH GN c GN c AN c Satz Jede kontextsensitive Sprache ist monoton. Jede monotone Sprache ist auch kontextsensitiv. D.h.: Zu einer monotonen Sprache lässt sich eine kontextsensitive angeben, die diese Sprache erzeugt.

69 69 MyXML Die Sprache MyXML ist - allgemein (klar) - monoton (offensichtlich) - kontextsensitiv (nach Satz) Eine Grammatik für MyXML: S S T aAT T bBT T M Aa aA Ab bA AM Ma Ba aB Bb bB BM Mb M >N N aN N bN N cN N < MyXML.jff

70 70 MyXML Die Sprache MyXML ist nicht kontextfrei. Um dies nachzuweisen, muss man zeigen, dass es keine kontextfreie Grammatik gibt, die MyXML erzeugt. Man zeigt dies, indem man nachweist, dass es keinen Kellerautomaten gibt, der diese Sprache akzeptiert. (Beweis: Studium) Eine Grammatik für MyXML: S S T aAT T bBT T M Aa aA Ab bA AM Ma Ba aB Bb bB BM Mb M >M M aM M bM M cM M < MyXML.jff

71 71 Erweiterung des Automatenmodells Zielsetzung: Ziel ist es, ein Automatenmodell zu entwickeln, das auch komplexere Sprachen (wie kontextsensitive / allgemeine Sprachen) erkennen kann. Vorgehensweise: Wir betrachten zunächst wieder die Sprache K1 / L wcw der Wörter der Gestalt wcw, wobei w ein beliebiges Wort über {a, b} ist. Zunächst testen wir ein neues Maschinenmodell und analysieren dann seine Arbeitsweise.

72 72 Aufgabe Starten Sie das Programm JFlap und öffnen Sie die Datei wcwTM im Verzeichnis MaterialJFlap. Lassen Sie den gezeigten erweiterten Automaten folgende Wörter verarbeiten: aabcaab, abbacabba, c, aacaab, aabcaa,... Wie arbeitet diese Maschine?

73 73 Turingmaschinen Eine Turingmaschine ist ein Automat, der zustandsabhängig Zeichen bearbeiten kann, die sich auf einem (nach links und rechts unbegrenzten) Band befinden. Die Turingmaschine verfügt hierzu über einen Schreib- /Lesekopf, der sich auf dem Band in beide Richtungen bewegen kann und zustandsabhängig die Bandbeschriftung verändern kann. Aktueller Zustand Band mit aktueller Beschriftung Schreib-/Lesekopf Zustandsbasierte Verarbeitungseinheit

74 74 Arbeitsweise der Turingmaschine - Die Turingmaschine befindet sich zu Beginn in einem Startzustand. - Die Turingmaschine liest das Zeichen aus der Zelle, auf dem sich der Schreib-/Lesekopf befindet, schreibt ein neues Zeichen in die Zelle und bewegt den Schreib-/Lesekopf dann nach rechts oder links bzw. stoppt. - Die Turingmaschine darf für Zwischenergebnisse zusätzliche Zeichen verwenden, die nicht in den zu analysierenden Wörtern vorkommen. - Ein Wort wird genau dann akzeptiert, wenn sich die Turingmaschine nach Abarbeitung des Wortes in einem Endzustand befindet. Gelesenes Zeichen; Geschriebenes Zeichen, Kopfbewegung

75 75 Aufgabe Entwickeln Sie eine Turingmaschine, die die Sprache L = {a n b n | n 1} akzeptiert. Entwerfen und testen Sie eine Turingmaschine, die die Sprache L = {a n b n c n | n 0} akzeptiert.

76 76 Aufgabe Zeigen Sie, dass die Sprache MyXML mit Hilfe einer Turingmaschine erkannt werden kann. Die Sprache MyXML kann sogar mit Hilfe einer sog. 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.

77 77 Äquivalenzsatz Satz Eine Sprache ist allgemein genau dann, wenn sie von einer deterministischen (oder nichtdeterministischen) Turingmaschine erkannt wird. Satz Eine Sprache ist kontextsensitiv genau dann, wenn sie von einer linear beschränkten nichtdeterministischen Turingmaschine erkannt wird. Bemerkung: Deterministische und nichtdeterministische Turingmaschinen sind gleich mächtig.

78 78 Chomsky-Hierarchie Klassifikation von Sprachen (nach Noam Chomsky / 1958) TypGrammatikäquivalenter Automat 0allgemein(nicht)deterministische Turingmaschine 1kontextsensitivnichtdet. linear beschr. Turingmaschine 2kontextfreinichtdeterministischer Kellerautomat 3regulär(nicht)deterministischer endl. Automat

79 79 Teil 4 Exkurs: natürliche Sprachen

80 80 Noam Chomsky Noam Chomsky hat die Darstellung natürlicher Sprachen formalisiert. Die Neuerung war, die einzelsprachlichen Ausdrücke mit Hilfe einer Metasprache rekursiv zu definieren. Die aus der Metasprache abgeleiteten Klassen von Grammatiken können in eine Hierarchie eingeteilt werden, die heute Chomsky-Hierarchie genannt wird. Seine Arbeit stellt einen wichtigen Meilenstein für die Linguistik dar. Formale Sprachen und die Chomsky-Hierarchie spielen auch in der Informatik eine wichtige Rolle, insbesondere in der Komplexitätstheorie und im Compilerbau. Zusammen mit den Arbeiten Alan Turings begründen sie einen eigenen Bereich in der Mathematik und machen strukturelle Bereiche und Formalismen natürlicher Sprachen einer mathematischen Betrachtung zugänglich, unter anderem mit dem Ergebnis, dass maschinelle Übersetzungen prinzipiell möglich sind.Alan Turings Vielen Forschern innerhalb der Computerlinguistik gelten Chomskys Theorien, insbesondere die Generative Transformationsgrammatik und seine Government and Binding-Ansätze, allerdings seit ungefähr 1980 zwar als bedeutende Pionierleistung, jedoch als heute veraltet, insofern sie sich auf natürliche Sprachen beziehen - im Gegensatz zu Programmiersprachen und anderen formalen Sprachen, wo seine Formalismen weiterhin mit Gewinn verwendet werden können. (siehe:

81 81 Sprache und ihre Verwendung Natürliche Sprachen sind Zeichensysteme, die u. a. für Kommunikation genutzt werden.

82 82 Syntax, Semantik, Pragmatik Aspekte natürlicher Sprachen: Pragmatik: Lehre von der Verwendung sprachlicher Konstrukte in Handlungssituationen Beziehung zwischen Zeichen und Zeichenbenutzer Semantik: Bedeutungslehre Beziehung zwischen Zeichen und Bezeichnetem Syntax: Lehre vom Satzbau Anordnung der Zeichen

83 83 Eine einfache Grammatik ::= Ein Satz besteht aus einer Nominalphrase und einer Verbalphrase. ::= | | 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. ::= | | Eine Verbalphrase besteht aus einem Verb, dem eine Nominal- oder Präpositionalphrase nachgestellt sein kann. ::= Eine Präpositionalphrase besteht aus einer Präposition und einer Nominalphrase. ::= der | die | das | dem | ein | einem |... ::= mit | in |... ::= Anna | Kuh | Park | Fernglas |... ::= betrachtet |... (nach U. Schöning: Ideen der Informatik. Oldenbourg 2002)

84 84 Test der Grammatik Anna Anna betrachtet Anna betrachtet die Anna betrachtet die Kuh Anna betrachtet die Kuh mit Anna betrachtet die Kuh mit einem Anna betrachtet die Kuh mit einem Fernglas ::= ::= | | ::= ::= der | die | das | einem |... ::= mit | in |... ::= Anna | Kuh | Fernglas |... ::= betrachtet |...

85 85 Automatische Übersetzung Die Beschreibung, Erkennung und Übersetzung natürlicher Sprachen ist sehr schwierig. Der Beschreibungsansatz über Grammatiken hat bisher nicht zum Erfolg geführt. Heute versucht man, natürliche Sprachen mit statistischen Methoden automatisch zu übersetzen.

86 86 Literaturhinweise F. Gasper, I. Leiß, M. Spengler, H. Stimm: Technische und theoretische Informatik. Bsv E. Modrow: Automaten, Schaltwerke, Sprachen. Dümmlers Verlag R. Baumann: Informatik für die Sekundarstufe II, Band 2. Klett-Verlag Informatik heute, Band 2. Schroedel-Verlag U. Schöning: Theoretische Informatik – kurzgefasst. Spektrum Akademischer Verlag J. E. Hopcroft / J. D. Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. Addison-Wesley S. H. Rodger, T. W. Finley: JFLAP. Jones and Bartlett Publishers


Herunterladen ppt "Formale Sprachen Teil 2 Klaus Becker 2006. 2 Theorie formaler Sprachen Komplexität von Grammatiken Automatenmodelle Zusammenhänge zwischen Grammatiken."

Ähnliche Präsentationen


Google-Anzeigen