Theorie formaler Sprachen

Slides:



Advertisements
Ähnliche Präsentationen
Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Advertisements

Vorlesung Compilertechnik Sommersemester 2008
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Kellerautomaten und Turingmaschinen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
7. Automaten Ein Automat ist ein Sechstupel A= (I, O, Q, , q0, F).
8. Formale Sprachen und Grammatiken
Grammatiken, Definitionen
Christian Schindelhauer
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
FH-Hof Grammatiken Richard Göbel. FH-Hof Begriffe Eine Grammatik definiert die Struktur (Syntax) einer Zeichenkette Eine Grammatik definiert nicht die.
Parser für CH3-Sprachen
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (04 – Automaten mit ε-Transitionen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (03 – Nichtdeterminierte endliche Automaten) Prof. Dr. Th. Ottmann.
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
Reguläre Sprachen Karin Haenelt.
© Karin Haenelt 2006, Äquivalenzen Reg.Ausdrücke, Reg.Sprachen, EA ( ) 1 Reguläre Sprachen Karin Haenelt.
Beispiele für Ausdrucksalgebren
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Christian Schindelhauer
Christian Schindelhauer
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Dominic Dumrauf.
Christian Schindelhauer
Christian Schindelhauer
Differentielles Paar UIN rds gm UIN
Prof. Dr. Bernhard Wasmayr
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Theoretische Informatik 2
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
AWA 2007 Natur und Umwelt Natürlich Leben
20:00.
Zusatzfolien zu B-Bäumen
Formale Sprachen und Automaten
Eine Einführung in die CD-ROM
Dokumentation der Umfrage
Formale Sprachen Teil 2 Klaus Becker 2006.
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
Syntaxanalyse Bottom-Up und LR(0)
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Akzeptor & Sprache.
Geometrische Aufgaben
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Symmetrische Blockchiffren DES – der Data Encryption Standard
Retuschen.ppt Die folgende Schau zeigt die Möglichkeiten, mit PhotoDraw Digitalbilder zu retuschieren. Vergleichen Sie jeweils zwei Bildpaare durch fleissiges.
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
Städtisches Gymnasium Beverungen Friedel Berlage
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Spracherkennung mit Automaten
Noam CHOMSKY, Sheila GREIBACH
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Arne Vater Wintersemester 2006/07 28.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Arne Vater Wintersemester 2006/ Vorlesung
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Unternehmensbewertung Thomas Hering ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List of Figures Tabellenübersicht.
Folie Einzelauswertung der Gemeindedaten
Wintersemester 2005 / Vorlesung
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele (Frist: ) Beispiel 1: Sei  = {a, b} ein Alphabet und Q = {q 0, q 1 } eine.
7. Formale Sprachen und Grammatiken
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Kapitel 4:Die Chomsky Hierarchie
 Am Ende der letzten Stunde hatten wir über die Grenzen unserer Automaten-Modell gesprochen. Dr. Lars Ettelt2  Tipp: Parkhaus.  Einfahrt erst wenn.
Spracherkennung mit Automaten
 Präsentation transkript:

Theorie formaler Sprachen Klaus Becker 2004

Formale Sprachen und Automaten Reguläre Sprachen Endliche Automaten Kontextfreie Sprachen Kellerautomaten Kontextsensitive Sprachen Linear beschränkte TM Allgemeine Sprachen Turingmaschinen

Teil 1 Reguläre Sprachen

Festlegung formaler Sprachen B  zN N  0 N  1 N  0N N  1N Grammatik Automat Zielsetzung Ziel ist es, verschiedene Möglichkeiten zur Festlegung formaler Sprachen zu vergleichen.

Die Sprache der Zustandsbezeichner (Vereinfachte) Zustandsbezeichner z0 z10 z01101 z000000 Regeln 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.

Grammatik (Vereinfachte) Zustandsbezeichner z0 z10 z01101 z000000 Grammatikregeln S  zA A  0 A  1 A  0A A  1A

Übersetzung: Grammatik  Automat S  zA A  0 A  1 A  0A A  1A

Übersetzung: Automat  Grammatik B   A  0B A  1B S  zA A  1A A  0A

Exkurs: Nichtdeterministische Automaten Wahlmöglichkeit Wahlmöglichkeit 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.

Exkurs: Nichtdeterministische Automaten 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.

Exkurs: Nichtdeterministische Automaten 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).

Überführung: NFA  DFA nichtdeterministischer Automat (NFA) deterministischer Automat (DFA)

Äquivalenzsatz Satz (Rabin, Scott) Zu jedem nichtdeterministischen Automaten gibt es einen deterministischen Automaten, der dieselbe Sprache erkennt. 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.

Beweisidee Jede Menge von Zuständen des NFA ergibt einen neuen Zustand des DFA. Nicht benötigte Zustände werden weggelassen.

Zusammenhang: Grammatik – Automat Grammatik  NFA NFA  Grammatik S  zA A  0 A  1 A  0A A  1A B   A  0B A  1B S  zA A  1A A  0A 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.

Regulä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. Beispiele für reguläre Grammatikregeln: A  c A  aB A  cA Beispiele für nicht-reguläre Grammatikregeln: A  aBa AB  c

Äquivalenzsatz Grammatik  NFA NFA  Grammatik S  zA A  0 A  1 A  0A A  1A B   A  0B A  1B S  zA A  1A A  0A Satz Jede durch einen endlichen Automaten erkennbare Sprache ist regulär. Jede reguläre Sprache kann durch einen endlichen Automaten erkannt werden.

Überführung: NFA  RE (z((1+0)*))(0+1)

Überführung: RE  NFA (z((1+0)*))(0+1)

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

Beschreibung regulärer Sprachen Folgende Sprachbeschreibungskonzepte sind äquivalent: - deterministische endliche Automaten - nichtdeterministische endliche Automaten - reguläre Grammatiken - reguläre Ausdrücke (z((1+0)*))(0+1) S  zA A  0 A  1 A  0A A  1A

Übungen Aufgabe 1 Wir 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 2 Wir 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 3 Wir 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.

Kontextfreie Sprachen Teil 2 Kontextfreie Sprachen

Klammersprachen Vereinfachte Zustandsmengen ATag <a> <zm> <z>off</z> <z>low</z> <z>high</z> </zm> <az> <z>off</z> </az> ... </a> Elementliste Element ETag Ein Element besteht aus einem Anfangstag, einem Bezeichner oder einer Elementliste und einem passenden Endtag.

Klammersprachen Vereinfachte Zustandsmengen Grammatik <a> <zm><z>off</z><z>low</z><z>high</z></zm> <az><z>off</z></az> ... </a> Grammatik 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

Klammersprachen XML mit vereinfachten Tags ATag < < <off> <low> <high> > < <off> > ... > <a> <zm> <z>off</z> <z>low</z> <z>high</z> </zm> <az> <z>off</z> </az> ... </a> Elementliste Element ETag Terminalsymbole: '<', '>', 'a', 'b', 'c', 'd', ... Startsymbol: <Element> Produktionen: <Abc> ::= 'a' | 'b' | 'c' | 'd' | ... <Bezeichner> ::= <Abc> | <Abc> <Bezeichner> <Element> ::= '<' <Bezeichner> '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe>

Klammersprachen XML mit vereinfachten Tags ohne Inhalte < < <> <> <> > < <> > ... > < < <off> <low> <high> > < <off> > ... > Terminalsymbole: '<', '>' Startsymbol: <Element> Produktionen: <Element> ::= '<' '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe>

Klammersprachen Klammer auf, Klammer zu L = {anbn | n  1} < < <> > > aaabbb Terminalsymbole: '<', '>' Startsymbol: <Element> Produktionen: <Element> ::= '<' '>' | '<' <Element> '>' Terminalsymbole: a, b Startsymbol: S Produktionen: S ::= ab | aSb

Erkennen von Klammersprachen Problem: Gesucht ist ein endlicher Automat, der Klammersprachen erkennt. < < <> <> <> > < <> > > < < < < < > > > > EA ok Fehler

Erkennen von Klammersprachen 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. < < < < < > > > > EA Fehler

Grenzen des endlichen Automaten Satz Es gibt keinen endlichen Automaten, der die Klammersprache L = {anbn | n  1} akzeptiert. 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: a . . . . . . a a a a a a b b ... ... ...

Grenzen des endlichen Automaten aq a . . . . . . a a a a a a b b ... ... ... ap ar bk 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.

Grenzen des endlichen Automaten 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.

Erweiterung des Automatenmodells Eingabeband ... < < < > > > ... Lesekopf Zustandsbasierte Verarbeitungseinheit ... > > Kellerautomat Keller

Spracherkennung mit Kellerautomaten Kelleraktionen: push z Das Zeichen z auf den Stapel legen. pop Das oberste Zeichen des Stapels entfernen. Zustandsübergang: z / e: Aktion Oberstes Kellerzeichen Gelesene Eingabezeichen Spracherkennung: Ein Wort wird akzeptiert, wenn der Keller nach Abarbeitung des Wortes leer ist.

Erkennung einer Klammersprache Beispiel: Der Kellerautomat erkennt die Klammersprache L = {<n>n | n  1}. Oberstes Kellerzeichen / Gelesene Eingabe : Kelleraktion Erstellt mit „Automaton Simulator“

Nichtdeterministische Kellerautomaten Zustandsübergang: Eingabe , Pop-Aktion; Push-Aktion Nichtdeterminismus Nichtdeterminismus

Nichtdeterministische Kellerautomaten

Übung Entwickeln Sie Kellerautomaten, die die folgenden Sprachen akzeptieren: Terminalsymbole: '<', '>' Startsymbol: <Element> Produktionen: <Element> ::= '<' '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe> Terminalsymbole: '<', '>', 'a', 'b', 'c' Startsymbol: <Element> Produktionen: <Abc> ::= 'a' | 'b' | 'c' <Bezeichner> ::= <Abc> | <Abc> <Bezeichner> <Element> ::= '<' <Bezeichner> '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe>

Lösungsvorschlag Terminalsymbole: '<', '>', 'a', 'b', 'c' Startsymbol: <Element> Produktionen: <Abc> ::= 'a' | 'b' | 'c' <Bezeichner> ::= <Abc> | <Abc> <Bezeichner> <Element> ::= '<' <Bezeichner> '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe>

Struktur der Regeln Strukturanalyse: Terminalsymbole: '<', '>' Startsymbol: <Element> Produktionen: <Element> ::= '<' '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe> Terminalsymbole: '<', '>', 'a', 'b', 'c' Startsymbol: <Element> Produktionen: <Abc> ::= 'a' | 'b' | 'c' <Bezeichner> ::= <Abc> | <Abc> <Bezeichner> <Element> ::= '<' <Bezeichner> '>' | '<' <ElementListe> '>' <ElementListe> ::= <Element> | <Element> <ElementListe> Auf der linken Seite steht jeweils ein Nichtterminalsymbol. Auf der rechten Seite steht ein Wort, das aus Terminal- und Nichtterminalsymbolen bestehen kann.

Kontextfreie Grammatiken 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. Beispiele für kontextfreie Grammatikregeln: E  ab E  aLb L  E L  EL Beispiele für nicht-kontextfreie Grammatikregeln: aAb  bAa

Übersetzung: Grammatik  Kellerautomat Nichtdeterministischer Zustandsübergang

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

Kontextsensitive und allgemeine Sprachen Teil 3 Kontextsensitive und allgemeine Sprachen

Beispiel Vereinfachte Zustandsmengen <a> <zm><z>off</z><z>low</z><z>high</z></zm> <az><z>off</z></az> ... </a> Regeln 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.

XML Vereinfachte Zustandsmengen Grammatik <a> <zm><z>off</z><z>low</z><z>high</z></zm> <az><z>off</z></az> ... </a> Grammatik 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

Eine vereinfachte Tag-Klammersprache ATag-Wort-ETag aab bc aab ba ccba ba Sprachbeschreibung 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.

Tag-Klammersprache ATag-Wort-ETag aab bc aab Grammatik – Version 1 (mit Zusatzbedingung) Startsymbol: S A ::= aA | bA |  E ::= aE | bE |  W ::= aW | bW | cW |  S ::= A W E [*] [*] A und E müssen zusammenpassen

Tag-Klammersprache ATag-Wort-ETag aab bc aab Grammatik – Version 2 (ohne Zusatzbedingung) Startsymbol: S S ::= aTaX | bTbX T ::= aTaX | bTbX | U aXb ::= baX aXa ::= aaX bXa ::= abX bXb ::= bbX aX ::= a bX ::= b U ::= aU | bU | cU | 

Übung 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. Startsymbol: S S ::= aTaX | bTbX T ::= aTaX | bTbX | U aXb ::= baX aXa ::= aaX bXa ::= abX bXb ::= bbX aX ::= a bX ::= b U ::= aU | bU | cU | 

Test der Tag-Klammersprache aab|bc|aab

Struktur der Regeln Strukturanalyse: Startsymbol: S S ::= aTaX | bTbX T ::= aTaX | bTbX | U aXb ::= baX aXa ::= aaX bXa ::= abX bXb ::= bbX aX ::= a bX ::= b U ::= aU | bU | cU |  Auf der linken und rechten Seite können beliebige Wörter bestehend aus Terminal- und Nichtterminalsymbolen stehen.

Kontextsensitive / allgemeine Grammatiken 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. Beispiele: aX  a kontextsensitive Regel bXa  abX allgemeine Regel

Einordnung 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. Der Nachweis von a) ist mit der bereits angegebenen Grammatik erbracht. Auf den Nachweis von b) und c) wird hier verzichtet.

Spracherkennung durch ... Brute Force Parser Erzeugung von Hilfknoten

... Suche einer Ableitung Grammatik: S ::= aSaX | bSbX | U aXb ::= baX; aXa ::= aaX; bXa ::= abX; bXb ::= bbX aX ::= a; bX ::= b U ::= aU | bU | cU |  Wort: aabbcaab 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 ... Backtracking

Erweiterung des Automatenmodells Ein-/Ausgabeband ... < < < > > > ... Zustandsbasierte Verarbeitungseinheit Schreib-/Lesekopf Turingmaschine

Spracherkennung mit Turingmaschinen Zustandsübergang: Aktion a ; b, R Gelesenes Zeichen Geschriebenes Zeichen Turingmaschinenaktionen: R ein Feld nach rechts L ein Feld nach links S stopp

Worterkennung Worterkennung 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ä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.

Spracherkennung mit Turingmaschinen Worterkennung mit leerem Band am Beispiel L = {anbn | n  0}

Spracherkennung mit Turingmaschinen Worterkennung mit Endzuständen am Beispiel L = {anbn | n  0}

Spracherkennung mit Turingmaschinen Worterkennung mit Endzuständen am Beispiel L = {anbn | n  0}

Erkennung der Tag-Klammersprache Satz Die Tag-Klammersprache L = {tut | t  {a,b}*; u  {a,b,c}*} kann mit Hilfe einer Turingmaschine erkannt werden. Idee – dargestellt am Beispiel aab|bc|aab 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.

... mit dem MPG-Turing-Simulator

Erkennung 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. Bemerkung 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.

Ä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. Bemerkung Deterministische und nichtdeterministische Turingmaschinen sind gleich mächtig.

Übungen Aufgabe 1 Entwerfen und testen Sie eine Turingmaschine, die die Sprache L = {anbn | n  0} akzeptiert. Aufgabe 2 Entwerfen und testen Sie eine Turingmaschine, die die Sprache der korrekt gebildeten Zahlen akzeptiert. Aufgabe 3 Entwerfen 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 4 Entwerfen und testen Sie eine Turingmaschine, die die Sprache L = {anbncn| n  0} akzeptiert.

Übungen Aufgabe 5 Welche der in Aufgabe 1, ..., Aufgabe 4 beschriebenen Sprachen ist regulär, kontextfrei, kontextsensitiv, allgemein?

Exkurs: Natürliche Sprachen Teil 4 Exkurs: Natürliche Sprachen

Chomsky-Hierarchie Klassifikation von Sprachen (nach Chomsky / 1958) 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

Noam Chomsky http://web.mit.edu/linguistics/www/chomsky.home.html

(Natürliche) Sprachen Sicht: zu Kommunikationszwecken verwendetes Zeichensystem Problem: Beschreibung und Erkennung natürlicher Sprachen

Semiotik Semiotik: Lehre von den Zeichen Syntax: Lehre vom Satzbau Anordnung der Zeichen Semantik: Bedeutungslehre Beziehung zwischen Zeichen und Bezeichnetem Pragmatik: Lehre von der Verwendung sprachlicher Konstrukte in Handlungs-situationen Beziehung zwischen Zeichen und Zeichenbenutzer

Syntax 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)

Ableitung eines Satzes <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>  <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

Automatische Übersetzung Bemerkung Die Beschreibung, Erkennung und Übersetzung natürlicher Sprachen ist sehr schwierig. Der Beschreibungsansatz über Grammatiken hat bisher nicht zum Erfolg geführt.

Automatische Übersetzung heute Idee: Statistische Übersetzung mit Paralleltexten http://www.uebersetzerportal.de/nachrichten/n-archiv/2003/2003-09/2003-09-17.htm

Literaturhinweise 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/