Diskrete mathematik i
Download
1 / 26

Diskrete Mathematik I - PowerPoint PPT Presentation


  • 174 Views
  • Uploaded on

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>

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Diskrete Mathematik I' - emera


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Diskrete mathematik i

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:apbaqb 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

    • AwB oder

    • Aw

    • 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
Endlicher Automat zum Einlesen von NMEA

. . . . . .

<CR><LF>

S2

$GPGLL,

S1

S22

. . . . . .

$GPWNC,

<CR><LF>

. . . . . .

$GPGSV,

S38

. . . . . .

<CR><LF>


ad