Top Banner
Diskrete Mathe 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Diskrete Mathematik I Grammatiken, Sprachen und deren Verarbeitung Vorlesung 11
26

Diskrete Mathematik I

Feb 05, 2016

Download

Documents

emera

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)  - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
PowerPoint-Präsentation(2) <Subjekt> <Artikel> <Substantiv>
(3) <Objekt> <Artikel> <Substantiv>
Beispiel: Satzbau in deutscher Sprache (Auszug)
Diskrete Mathe
Grammatik: formale Definition
Hierarchie von Sprachen/Grammatiken
Übersicht
natürliche Sprachen
Überprüfung der syntaktischen Korrektheit
Voraussetzung für Verarbeitung
Erkennung/Verarbeitung natürlicher Sprachen
Kompilieren/Ausführen von Java-Programmen
Berechnen arithmetischer Ausdrücke
Motivation
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
Diskrete Mathe
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>
<Satz> <Subjekt> <Prädikat> <Objekt>
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 = apb ableitbar durch die Ersetzungsregel p q
Schreibweise: apb aqb oder X Y
Beispiel:
ableitbar durch die Regel <Prädikat> jagt
Ableitungsschritt, ableitbar
Diskrete Mathe
Ableitungsbaum
<Subjekt>
<Artikel>
<Substantiv>
Katze
<Satz>
<Prädikat>
<Objekt>
<Substantiv>
<Artikel>
die
jagt
Maus
die
Die von G erzeugte Sprache ist die Menge aller Worte,
die aus S durch Anwendung der Ersetzungsregeln P ableitbar sind, und
die nur aus Terminalsymbolen T bestehen.
Sprache
{ 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
}
Katze beißt Maus
Diskrete Mathe
Sprache/Grammatik
Einschränkung der Regeln
regulär (Typ 3)
A wB oder A w A,B: Nichtterminalsymbol w: Wort aus Terminalsymbolen
kontextfrei (Typ 2)
kontextsensitiv (Typ 1)
rekursiv aufzählbar (Typ 0)
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 kontextfreien Grammatik erzeugt wird
Diskrete Mathe
G sei definiert durch
(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)
Reguläre Grammatiken und Sprachen
Definition: Ein Grammatik G heißt regulär, wenn die Regeln die Form
A wB oder
A w
haben, wobei A und B Nichtterminalsymbole sind und w ein Wort aus Terminalsymbolen ist
Eine Sprache heißt regulär, wenn sie von einer regulären Grammatik erzeugt wird
Diskrete Mathe
(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
Diskrete Mathe
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
Diskrete Mathe
Sprache/ Grammatik
A wB A w A,B: Nichtterminalsymbol w: Wort aus Terminalsymbolen
Endlicher Automat
Kellerautomat
linear beschränkte Turing-Maschine
einer endlichen Menge Q von Zuständen
einem Anfangszustand aus Q
einer Zustandsüberführungsfunktion:
überführt einen Zustand q1 durch Lesen eines Terminal-Wortes w in den Zustand q2
Beispiel (graphische Notation):
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
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
Diskrete Mathe
Sprache: waa...axbb...bycc...cz
(2) A aA (6) C cC
(3) A xB (7) C z
(4) B bB
Zugehöriger endlicher Automat:
z.B. wird Wort waaafbbyccz nicht akzeptiert
z.B. wird Wort waxby nicht akzeptiert (kein Endzustand erreicht)
S
Ende
a
b
c
w
x
y
z
A
B
C
Auslesen von Informationen aus GPS-Geräten
wird von fast allen GPS-Geräten unterstützt
Protokoll besteht aus mehreren Sä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
$GPGSV: Satellites in view
Diskrete Mathe
$GPGLL,llll.ll,a,yyyyy.yy,a,hhmmss.ss,A*hh<CR><LF>
geogr. Breite
Zeit (UTC)
Prüfsumme
Kennung
$GPWNC,x.x,N,x.x,K,c--c,c--c*hh<CR><LF>
$GPGLL,