260 likes | 555 Views
Diskrete Mathematik I. Vorlesung 11. Grammatiken, Sprachen und deren Verarbeitung. 1. Wo bin ich?. $GPGLL,3455.45,N,74565.87,E,215421.54,V*23. Beispiel: Satzbau in deutscher Sprache (Auszug). Grammatik: (1) <Satz> <Subjekt> <Prädikat> <Objekt>
E N D
Diskrete Mathematik I Vorlesung 11 Grammatiken, Sprachen und deren Verarbeitung
1 Wo bin ich? $GPGLL,3455.45,N,74565.87,E,215421.54,V*23
Beispiel: Satzbau in deutscher Sprache (Auszug) • Grammatik: • (1) <Satz> <Subjekt> <Prädikat> <Objekt> • (2) <Subjekt> <Artikel> <Substantiv> • (3) <Objekt> <Artikel> <Substantiv> • (4) <Prädikat> jagt • (5) <Prädikat> beißt • (6) <Artikel> die • (7) <Substantiv> Maus • (8) <Substantiv> Katze • Ableitung: • <Satz> <Subjekt> <Prädikat> <Objekt> <Artikel> <Substantiv> <Prädikat><Artikel> <Substantiv> • die<Substantiv> <Prädikat>die<Substantiv> • die Katze jagt die Maus
1 Übersicht • Beispiel: Grammatik der deutschen Sprache (Auszug) • Grammatik: formale Definition • Ableitung, von Grammatik erzeugte Sprache • Hierarchie von Sprachen/Grammatiken • 'kontextfreie' Sprachen/Grammatiken • Beispiel 'Arithmetische Ausdrücke' • Ableitungsbäume • 'reguläre' Sprachen/Grammatiken • Einlesen/Verarbeiten von Sprachen • 'endliche Automaten' (Zustandsübergangsgraphen) • Beispiel: Einlesen/Verarbeiten von GPS-Daten (NMEA-Format)
1 Motivation • Grammatik: formale Beschreibung von Sprachen • natürliche Sprachen • Fokus: formaleSprachen (Java, arithmetische Ausdrücke, HTML, XML, ...) • Überprüfung der syntaktischen Korrektheit • Überprüfung, ob Wort zur Sprache gehört (grammatikalisch richtig ist) • Voraussetzung für Verarbeitung • Erkennung/Verarbeitung natürlicher Sprachen • Kompilieren/Ausführen von Java-Programmen • Berechnen arithmetischer Ausdrücke • Einlesen/Verarbeiten von GPS-Signalen, Dateien mit Tachymeter-Messpunkten, GIS-Daten,....
Grammatik: formale Definition • Eine Grammatik G ist definiert durch G = (N, T, S, P), mit • N: endliche Menge der Nichtterminalsymbole • T: endliche Menge der Terminalsymbole (N und T sind disjunkt) • S: Startsymbol, aus N • P: endliche Menge von Ersetzungsregeln p q, wobei p und q aus (N T)* sind • *: Stern-Operator: M* ist die Menge aller Worte, die sich aus den Symbolen aus M bilden lassen. • Bsp: {a}* = {, a, aa, aaa, aaaa, aaaaa, ...} • Bsp: {a,b}* = {, a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab,...} • : leeres Wort, ist immer dabei
Grammatik: Beispiel Satzbau • Eine Grammatik G ist definiert durch G = (N, T, S, P) mit • N: {<Satz>,<Subjekt>,<Prädikat>,<Objekt>,>Artikel>,<Substantiv>} • T: {die, Katze, Maus, jagt, beißt} • S:<Satz> • P: Menge der Ersetzungsregeln p q • <Satz> <Subjekt> <Prädikat> <Objekt> • <Subjekt> <Artikel> <Substantiv> • <Objekt> <Artikel> <Substantiv> • <Prädikat> jagt • <Prädikat> beißt • <Artikel> die • <Substantiv> Maus • <Substantiv> Katze
Ableitungsschritt, ableitbar • Gegeben: Grammatik G = (N,T,S,P) • X ist Wort aus (N T)* (d.h. beliebige Kombination aus Terminal- und Nichtterminalsymbolen) • p q ist Ersetzungsregel aus P • X = apb, d.h. p taucht in X auf • dann ist Y = aqb aus X = apbableitbar durch die Ersetzungsregel p q • Schreibweise:apbaqb oder X Y • Beispiel: • Das Wort Y = die <Substantiv> jagtdie <Substantiv> • ist aus X = die <Substantiv><Prädikat>die <Substantiv> • ableitbar durch die Regel <Prädikat> jagt
Ableitungsbaum • Zur Darstellung der Ableitungsschritte können Bäume verwendet werden. Beispiel: <Satz> <Subjekt> <Prädikat> <Objekt> <Artikel> <Substantiv> <Artikel> <Substantiv> die Katze jagt die Maus
Sprache • Gegeben: Grammatik G = (N,T,S,P) • Die von G erzeugte Spracheist die Menge aller Worte, die aus S durch Anwendung der Ersetzungsregeln P ableitbar sind, und die nur aus Terminalsymbolen T bestehen.
Sprache: Beispiel Satzbau in deutscher Sprache • Die von der Satzbau-Grammatik erzeugte Spracheist { die Maus jagt die Maus, die Maus jagt die Katze, die Maus beißt die Maus, die Maus beißt die Katze, die Katze jagt die Maus, die Katze jagt die Katze, die Katze beißt die Maus, die Katze beißt die Katze} • Keine Worte dieser Sprache sind: • die Katze <Prädikat> die Maus • die Katze frisst die Maus • Katze beißt Maus
Klassifikation von Sprachen/Grammatiken Informatik: Chomsky-Hierarchie nur die grau unterlegten Grammatiken werden hier behandelt
Kontextfreie Grammatiken und Sprachen • Definition: Ein Grammatik G heißt kontextfrei, wenn die Regeln die Form • A a • haben, wobei A ein Nichtterminalsymbol und a ein beliebiges Wort ist (|a| > 0) • Eine Sprache heißt kontextfrei, wenn sie von einer kontextfreienGrammatik erzeugt wird
Kontextfreie Grammatik: Bsp. Arithmetische Ausdrücke • G sei definiert durch • Nichtterminalsymbole: {A} • Terminalsymbole: {+, —, * ( , ),a,b,c} • Startsymbol: A • Regeln: (1) A A*A (5) A a (2) A A+ A (6) A b (3) A A— A (7) A c(4) A (A) (8)A —A • Ableitung (Bsp): A A*A A* (A) A* (A+ A) —A* (A +A) —A* (—A+A) —A* (—(A)+A) A* (—(A —A)+A) —c * (—(A—A) +A) c * (—(b —A) +A) c * (—(b — a) + A) —c * (—(b — a) + c)
Arithmetische Ausdrücke: Ableitungsbaum A Ableitung: A A*A A* (A) A* (A+ A) —A* (A +A) —A* (—A+A) —A* (—(A)+A) —A* (—(A —A)+A) —c * (—(A—A) +A) —c * (—(b —A) +A) —c * (—(b — a) + A) —c * (—(b — a) + c) A * A — A ( A ) c A + A — A c ( A ) A — A b a
Reguläre Grammatiken und Sprachen • Definition: Ein Grammatik G heißt regulär, wenn die Regeln die Form • AwB oder • Aw • haben, wobei A und BNichtterminalsymbole sind und w ein Wort aus Terminalsymbolen ist • Eine Sprache heißt regulär, wenn sie von einer regulären Grammatik erzeugt wird
Reguläre Grammatiken/Sprachen: Beispiel • Sprache: waa...axbb...bycc...cz • Grammatik G: • Nichtterminalsymbole: {S,A,B,C} • Terminalsymbole: {a,b,c,w,x,y,z} • Startsymbol: S • Regeln: (1) S wA (5) B yC (2) A aA (6) C cC (3) A xB(7) C z(4) B bB • Ableitung (Beispiel): S wA waA waaA waaaA waaaxB waaaxbB waaaxbbB waaaxbbbB waaaxbbbbB waaaxbbbbyC waaaxbbbbycC waaaxbbbbyccC waaaxbbbbycccC waaaxbbbbyccccC waaaxbbbbyccccz
Erkennung/Verarbeitung von Sprachen • Grammatiken: Erzeugung von Worten einer Sprache • Komplementäres Problem: Erkennung eines Wortes • Gehört ein Wort zur Sprache oder nicht? • z.B. ist Java-Programm syntaktisch korrekt (keine Syntaxfehler)? • z.B. ist ein HTML-Dokument syntaktisch korrekt? • Voraussetzung zur Verarbeitung eines Wortes • Zerlegen von Datensätzen, Extrahieren von Informationen • z.B. Erkennung von Subjekt, Prädikat, Objekt • z.B. Extraktion von Koordinaten aus GPS-Daten • Begriff: 'parsen' (vgl. Vorlesung Java: Token) • zu jedem Grammatik-Typ (3-0) gibt es entsprechendes Erkennungsverfahren
Erkennung/Verarbeitung von Sprachen nur die grau unterlegten Konzepte werden hier behandelt
Endliche Automaten • Ein endlicher Automat besteht aus • einer endlichen Menge Q von Zuständen • einem Anfangszustand aus Q • einer Menge von Endzuständen (Teilmenge von Q) • einer Zustandsüberführungsfunktion:überführt einen Zustand q1 durch Lesen eines Terminal-Wortes w in den Zustand q2 • Beispiel (graphische Notation): abc S A x Ein endlicher Automat ist ein gerichteter, markierterGraph(vgl. nächste Vorlesung:Dijkstra) d Ende xyz y B
Endliche Automaten und reguläre Sprachen • Gegeben: eine reguläre Grammatik G = (N,T,S,P) • Konstruktion des endlichen Automaten zu G: • Zustandsmenge ist Menge der Nichtterminalsymbole, plus einem extra Endzustand • Anfangszustand entspricht Startsymbol • Jede Ersetzungsregel entspricht einem Zustandsübergang: • A wB: Übergang von A nach B durch Lesen des Wortes w • A w: Übergang von A in Endzustand durch Lesen des Wortes w • Ein endlicher Automat zu einer Grammatik G akzeptiert ein Wort, wenn er • beginnend im Anfangszustand • das Wort schrittweise gemäß der Zustandsübergangsfunktion liest, und • nach dem Lesen in einem Endzustand ist • Ein endlicher Automat zu einer Grammatik G akzeptiert ein Wort w genau dann, wenn das Wort w von der Grammatik G erzeugt wird
Endlicher Automat zu regulärer Grammatik: Beispiel • Sprache: waa...axbb...bycc...cz • Regeln: (1) S wA (5) B yC (2) A aA (6) C cC (3) A xB(7) C z(4) B bB • Zugehöriger endlicher Automat: • z.B. wird Wort waaaaaaxycccccz akzeptiert • z.B. wird Wort waxbbyccz akzeptiert • z.B. wird Wort waaafbbyccz nichtakzeptiert • z.B. wird Wort waxby nichtakzeptiert (kein Endzustand erreicht) y z w x Ende S C A B c a b
Beispiel: Interpretation eines GPS-Formats • Standard NMEA0183(National Marine Electronics Association) • Auslesen von Informationen aus GPS-Geräten • wird von fast allen GPS-Geräten unterstützt • Protokoll besteht aus mehrerenSätzen (ASCII/Text) • Satz beginnt mit Dollarsymbol ($) und endet mit neuer Zeile(<CR><LF>) • Nach $ kommt Kennung des Satzes, z.B. • $GPGLL: Geographic Position – Latitude/Longitude • $GPWNC: Distance - Waypoint to Waypoint • $GPGSV: Satellites in view • ...... • Kennung bestimmt das Format des Satzes • Endlicher Automat zum Einlesen von NMEA....
$GPGLL, zzzz zz , , c zzzzz . S1 S2 S6 S3 S4 S5 S7 S8 S9 <CR><LF> . S21 zz zzzzzz zz zz , , , c , . c S20 S19 S18 S17 S16 S15 S14 S13 S12 S11 S10 NMEA: GLL: Geographic Position – Latitude/Longitude $GPGLL,llll.ll,a,yyyyy.yy,a,hhmmss.ss,A*hh<CR><LF> Prüfsumme Kennung Zeit (UTC) geogr. Breite Status (A: Valid, V: Invalid) N or S (North or South) geogr. Länge E or W (East or West) c ist Buchstabe z ist Zahl
, , N . z z z $GPWNC, S29 S22 S23 S28 S24 S26 S27 S25 S1 . , , K z , S30 zz S31 * S32 S34 S33 <CR><LF> S35 S36 S37 c c NMEA: WNC- Distance - Waypoint to Waypoint $GPWNC,x.x,N,x.x,K,c--c,c--c*hh<CR><LF> Kennung Prüfsumme Name des TO Waypoint Abstand in naut. Meilen Name des FROM Waypoint N: Naut. Meilen K: Kilometer Abstand in Kilometern
Endlicher Automat zum Einlesen von NMEA . . . . . . <CR><LF> S2 $GPGLL, S1 S22 . . . . . . $GPWNC, <CR><LF> . . . . . . $GPGSV, S38 . . . . . . <CR><LF>