4.2.4 Reguläre Grammatiken



Ähnliche Dokumente
4.2.4 Reguläre Grammatiken

Sprachen/Grammatiken eine Wiederholung

Programmiersprachen und Übersetzer

Grammatiken. Einführung

Theorie der Informatik

Grundbegriffe der Informatik

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Theoretische Informatik I

Formale Sprachen und Grammatiken

Vorlesung Theoretische Informatik

Grundbegriffe der Informatik

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

Informatik IC2. Balazs Simon

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Grundbegriffe der Informatik

Grundlagen der Theoretischen Informatik, SoSe 2008

1 Mathematische Grundlagen

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

2.11 Kontextfreie Grammatiken und Parsebäume

Übung Theoretische Grundlagen

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Theoretische Informatik I

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

Einführung in die Algebra

Wortproblem für kontextfreie Grammatiken

Software-Engineering SS03. Zustandsautomat

Primzahlen und RSA-Verschlüsselung

Mathematische Grundlagen der Informatik 2

Einführung in. Logische Schaltungen

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Erstellen von x-y-diagrammen in OpenOffice.calc

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Theoretische Grundlagen der Informatik

Grundlagen der Theoretischen Informatik

GeoPilot (Android) die App

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Anmerkungen zur Übergangsprüfung

Repetitionsaufgaben Wurzelgleichungen

Was ist ein Compiler?

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

Programmierkurs Java

TheGI 1: Grundlagen und algebraische Strukturen Prof. Dr.-Ing. Uwe Nestmann Februar Schriftliche Leistungskontrolle (EK)

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Theoretische Informatik SS 04 Übung 1

Informationsblatt Induktionsbeweis

Reguläre Sprachen Endliche Automaten

7. Formale Sprachen und Grammatiken

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Was meinen die Leute eigentlich mit: Grexit?

Kostenstellen verwalten. Tipps & Tricks

IT-Basics 2. DI Gerhard Fließ

Aufgabentypen die in der Klausur vorkommen

Musterlösungen zur Linearen Algebra II Blatt 5

Grundlagen der Künstlichen Intelligenz

Lehrer: Einschreibemethoden

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Zeichen bei Zahlen entschlüsseln

Hilfe zur Urlaubsplanung und Zeiterfassung

Probleme beim Arbeiten mit Variablen, Termen und Gleichungen

Eigenwerte und Eigenvektoren von Matrizen

3. LINEARE GLEICHUNGSSYSTEME

Grundbegriffe der Informatik

Endlicher Automat (EA)

Die Komplexitätsklassen P und NP

Grammatiken und die Chomsky-Hierarchie

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Die Post hat eine Umfrage gemacht

Zwischenablage (Bilder, Texte,...)

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Software Engineering Klassendiagramme Assoziationen

Mediator 9 - Lernprogramm

Übung Theoretische Grundlagen Nachtrag zur Vorlesung Dirk Achenbach

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Inventur. Bemerkung. / Inventur

Vorlesung Dokumentation und Datenbanken Klausur

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Wireless LAN PCMCIA Adapter Installationsanleitung

Leichte-Sprache-Bilder

Die Invaliden-Versicherung ändert sich

Benutzerverwaltung Business- & Company-Paket

Übungsblatt 3: Algorithmen in Java & Grammatiken

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

3.2 Spiegelungen an zwei Spiegeln

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Informatik I WS 07/08 Tutorium 24

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4 Aufzählungen und Listen erstellen

Elexis-BlueEvidence-Connector

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Transkript:

4.2.4 Reguläre Grammatiken Eine reguläre Grammatik ist eine kontextfreie Grammatik, deren Produktionsregeln weiter eingeschränkt sind Linksreguläre Grammatik: A w P gilt: w = ε oder w = Ba mit a T und B N Rechtsreguläre Grammatik: A w P gilt: w = ε oder w = ab mit a T und B N Normalerweise wird mit regulär die rechtsregulären Grammatiken gemeint Theorem: Für jede rechtsreguläre Grammatik G r gibt es eine linksreguläre Grammatik G l, so dass L(G r ) = L(G l ). Umgekehrt genauso. 32

4.2.4 Reguläre Grammatiken Beispiel: Was ist die entsprechende linksreguläre Grammatik der folgenden rechtsregulären Grammatik G = (N, T, P, S)? T = { 0, 1 } N = { S, A } P = { S 1A, A 0A, A 1B, B ε } Startsymbol S Beispiel: Was ist die entsprechende linksreguläre Grammatik der folgenden rechtsregulären Grammatik G ab = (N, T, P, S)? T = { a, b } N = { S } P = { S as, S bs, S ε } Startsymbol S 33

4.2.4 Reguläre Grammatiken Beispiel: Die folgende von G ab abgeänderte Grammatik G = (N, T, P, S) T = { a, b } N = { S } P = { S as, S Sb, S ε } Startsymbol S ist weder links- noch rechtsregulär. L(G ab ) = {a,b}* L(G), z.b. ba L(G) Beispiel: Was erzeugt die folgende Grammatik G = (N, T, P, S)? T = { a, b } N = { S, U 1,, U 100 } P = { S asu 1, U 1 U 2,, U 99 U 100,U 100 ε, S bs, S ε } Startsymbol S Ist {a,b}* wirklich eine reguläre (Typ-3) Sprache? 34

4.2.4 Reguläre Grammatiken Charakteristische Eigenschaft regulärer Grammatiken: Mit einer Regel der Form S as hat man keine Kontrolle darüber, wie oft sie zur Ableitung angewandt wird, daher kann man alle Wörter a n, n 0, erzeugen Es ist nicht die Größe der zu erzeugenden Sprache, die beim Formulieren einer Grammatik Probleme bereitet, sondern die Feinheit der Unterscheidung zwischen erlaubten und auszuschließenden Wörtern: a n b m kann durch eine reguläre Grammatik erzeugt werden Die Restriktion n = m kann aber nicht erzwungen werden für beliebig lange Wörter k ( 0) kann man eine reguläre Grammatik formulieren, die alle a n b n mit n k erzeugt, indem man die endlich vielen Produktionen für alle Fälle von 0 bis k direkt in die Grammatik schreibt! 35

4.2.4 Reguläre Grammatiken Konstruktion von komplexen regulären Sprachen aus einfacheren regulären Sprachen: L 1 und L 2 sind reguläre Sprachen über Alphabet T, dann sind folgende Sprachen regulär: Vereinigung: L = L 1 L 2 Produkt (Konkatenation): L = L 1. L 2 = { uv u L 1, v L 2 } Potenzen: Kleene-Stern: L 0 = { ε }, L n+1 = L. L n L* = { ε } L 1 L 2 L mindestens einmal: L + = L. L* L einmal oder keinmal (optionales L): L? = L { ε } 36

4.2.4 Reguläre Grammatiken Die einfachsten regulären Sprachen über Alphabet T: { } ε { a } für jedes a T Von diesen regulären Sprachen aus lassen sich weitere reguläre Sprachen gemäß der obigen Bildungsregeln ableiten Beispiel: T = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } Ziffern 1,..., 9: L a = { 1 } { 2 } { 3 } { 4 } { 5 } { 6 } { 7 } { 8 } { 9 } Ziffern 0,..., 9: L b = { 0 } { 1 } { 2 } { 3 } { 4 } { 5 } { 6 } { 7 } { 8 } { 9 } Positive ganze Zahlen ohne führende Nullen: L c = L a. (L b )* Nichtnegative ganze Zahlen: L d = L a. (L b )* { 0 } 37

4.2.4 Reguläre Grammatiken Reguläre Ausdrücke: Notation zur kompakten Darstellung der nach den Bildungsregeln ableitbaren regulären Sprachen. Die einfachsten regulären Sprachen: { }, d.h. L( ) = { } ε ε, d.h. L(ε) = { ε } { a } für jedes a T a, d.h. L(a) = { a } Bildungsregeln: Vereinigung: L(r 1 +r 2 )= L(r 1 ) L(r 2 ) Produkt (Konkatenation): L(r 1. r 2 )= L(r 1 ). L(r 2 ) Kleene-Stern: L(r*) = L(r)* L mindestens einmal: L(r + ) = L(r) + L einmal oder keinmal (optionales L): L(r?) = L(r) { ε } 38

4.2.4 Reguläre Grammatiken Definition: Sei T ein endliches Alphabet. Die Menge R der regulären Ausdrücke über T wird folgendermaßen definiert: 1) ist ein regulärer Ausdruck 2) ε ist ein regulärer Ausdruck 3) a T ist a ein regulärer Ausdruck 4) Sind r 1 und r 2 reguläre Ausdrücke, dann auch (r 1 + r 2 ), (r 1. r 2 ), (r ) und (r + ) Jeder reguläre Ausdruck r R ist durch endliche Anwendung der Regeln 1) - 4) konstruierbar und + haben höhere Priorität als. und +,. hat höhere Priorität als + Man gibt das Konkatenationszeichen meistens nicht an vereinfachende Schreibweise: ((a. (b )) + a) = ab + a 39

4.2.4 Reguläre Grammatiken Beispiel: T = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } Ziffern 1,..., 9: L a = { 1 } { 2 } { 3 } { 4 } { 5 } { 6 } { 7 } { 8 } { 9 } r = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = [1 9] Ziffern 0,..., 9: L b = { 0 } { 1 } { 2 } { 3 } { 4 } { 5 } { 6 } { 7 } { 8 } { 9 } r = 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = [0 9] Positive ganze Zahlen ohne führende Nullen: L c = L a. (L b )* r = [1 9]. [0 9]* Nichtnegative ganze Zahlen: L d = L a. (L b )* { 0 } r = [1 9]. [0 9]* + 0 40

4.2.4 Reguläre Grammatiken Mittels der Bildungsregeln kann jedem regulären Ausdruck r R über T in eineindeutiger Weise - induktiv über den Aufbau - eine Sprache L(r) über T zugeordnet, die man auch als die r zugeordnete reguläre Menge bezeichnet Beispiel: L((ab) + ) = (L(ab)) + = (L(a). L(b)) + = ({a}. {b}) + = {ab} + = { (ab) n, n > 0 } L(a b ) = L(a ). L(b ) = (L(a)).(L(b)) = {a}. {b} = { a n b m, n, m 0 } 41

4.2.4 Reguläre Grammatiken Beispiel: L((a+b) (a+b+0+1) ): Menge der Bezeichner, die mit a oder b beginnen und mit beliebig vielen a, b, 0, 1 fortgesetzt werden [a - za - Z][a za Z_0-9]*: Menge der Bezeichner, die mit einem Buchstaben anfangen und mit beliebig vielen Buchstaben, Ziffern, und _ forgesetzt werden. Diese kompakte Schreibweise als ein regulärer Ausdruck beschreibt eine reguläre Sprache und kommt der Definition von Bezeichnern aus vielen Programmiersprachen sehr nahe. Reguläre Ausdrücke werden in vielen Unix-Werkzeugen und zahlreichen Programmiersprachen wie z.b. perl, awk, lex usw. verwendet 42

4.2.5 Formale Syntax von Scheme R.K.Dybvig: The Scheme Programming Language, The MIT Press, 2003 Programs: A program consists of a sequence of definitions and expressions <program> <form>* <form> <definition> <expression> <definition> <variable definition> <variable definition> (define <variable> <expression>) <variable> <identifier> <expression> <constant> <variable> (lambda <formals> <body>) <constant> <boolean> <number> <character> <string> <identifier> <initial> <subsequent>* <initial> <letter>! $ % & * <subsequent> <initial> <digit> <letter> a b z <digit> 0 1 9 43

4.3 Automaten Eine Grammatik G definiert eine Sprache L(G). Aus praktischer Sicht ist das Entscheidungsproblem von großer Bedeutung. Gegeben sei eine Grammatik G mit Terminal-Alphabet T und ein Wort w T. Ist w L(G) oder nicht? Automaten verschiedener Typen lösen dieses Problem 44

4.3.1 Endliche Automaten Modellierung einfacher Automaten (Schalter, Fahrkarten, etc.) Definierter Ablauf von Aktionen Determinierte Folge von (akzeptierten) Aktionen Beispiel: Geräteschalter Anfangszustand, Endzustand, Eingabefolge. Endliche Automaten dienen zur Klassifikation von Eingabefolgen. Kippschalter drücken aus ein Kippschalter drücken 45

4.3.1 Endliche Automaten Ausstattung eines endlichen Automaten A: Eingabe: A wird von außen mit Eingabedaten versorgt Interne Zustände: A befindet sich immer in einem definierten Zustand. Es wird ein Anfangszustand definiert, von dem aus A unter Einfluss der Eingabe Zustandsübergänge durchführt Ausgabe: A kann unter gewissen Umständen Ausgabeinformation erzeugen 46

4.3.1 Endliche Automaten Beispiel: Zustandsdiagramm des Automaten A Münzeingaben mit Werten 50, 100, 200 in beliebiger Reihenfolge Nach Einwurf von insgesamt 200 akzeptiert A: Eintritt freigegeben! Gesamtwert der bisherigen Eingabe ist im aktuellen Zustand vermerkt 47

4.3.1 Endliche Automaten Eingabeband enthält Eingaben als Folgen von Zeichen Zustandsspeicher enthält jeweils aktuellen Zustand Programm, Kontrolle: Zustandsübergangsfunktion δ 48

4.3.1 Endliche Automaten Definition: Ein deterministischer endlicher Automat (DFA) ist gegeben durch A = (T, S, δ, s 0, F): eine endliche menge S von Zuständen eine endliche Menge T von Eingabezeichen einen eindeutig ausgezeichneten Anfangszustand s 0 S eine Endzustandsmenge F S eine Übergangsfunktion δ : S x T S. δ(s, a) = t spezifiziert den Folgezustand t im Fall von Zustand s und Eingabezeichen a T δ kann durch einen Zustandsübergangs-Graphen oder als Menge von Tripeln (s, a, t) mit δ(s, a) = t gegeben sein δ ist manchmal nicht total (überall definiert) 49

4.3.1 Endliche Automaten Beispiel: Endlicher Automat A = (T, S, δ, s 0, F) zum Erkennen der Menge { (ab) n, n 0 } T = { a, b } S = { s 0, s 1 } F = { s 0 } Beschreibung von δ durch Übergangsfunktion Zustandsdiagramm δ s 0 s 1 a a b s 1 - - s 0 s 0 s 1 b 50

4.3.1 Endliche Automaten Erweiterte Übergangsfunktion: Die Zustandsübergangsfunktion δ kann von Zeichen auf Wörter erweitert werden δ*(s, ε) = s für alle s S δ*: S x T* S δ*(s, aw) = δ*(δ(s, a), w) für alle a T, w T* Für einen endlichen Automaten A = (T, S, δ, s 0, F) wird die von A akzeptierte Sprache (die Menge aller von A akzeptierten Eingabefolgen) L(A) T* definiert durch: L(A) = { w; δ*(s 0, w) F } 51

4.3.1 Endliche Automaten Beispiel: Endlicher Automat zum Erkennen der Menge { (ab) n, n 0 } Bearbeitung von abab: δ ( s 0, abab ) = δ*( δ(s 0, a), bab ) = δ*( s 1,bab ) = δ*( δ(s 1,b), ab ) = δ ( s 0, ab ) = δ*( δ(s 0, a), b ) = δ*( s 1, b ) = δ*( δ(s 1, b), ε ) = δ*( s 0, ε ) = s 0 abab wird akzeptiert, da s 0 F Bearbeitung von aba: δ ( s 0, aba ) = δ*( δ(s 0, a), ba ) = δ*( s 1,ba ) = δ*( δ(s 1,b), a ) = δ ( s 0, a ) = δ*( δ(s 0, a), ε ) = δ*( s 1, ε ) = s 1 aba wird nicht akzeptiert, da s 1 F 52

4.3.1 Endliche Automaten Ein endlicher Automat kann einen Endzustand zwischendurch betreten und danach wieder verlassen Beispiel: Erkennen von { w { 0, 1 } : w = 0 n 1 m mit n 0, m > 0 } s 0 s 1 1 0 0 1 1 Weglassen des Zustands s 2 und aller mit ihm verbundenen Kanten würde an der erkannten Sprache nichts ändern! Endzustandsmenge F = { s 0, s 1 } { w { 0, 1 } : w = 0 n 1 m mit n 0, m 0 } wird erkannt Endzustandsmenge F = { s 2 } { w { 0, 1 } : w = 0 n 1 m 0w' mit n 0, m > 0, w' { 0, 1 } } wird erkannt 0 s 2 53

4.3.1 Endliche Automaten Bisher muss die Funktion δ eines DFA nicht total sein Ein DFA A = (T, S, δ, s 0, F) heisst vollständig, wenn dom(δ) = S x T. D.h. δ(s, a) = t ist definiert für alle Paare (s, a). Jeder DFA kann durch Hinzunahme eines Zustands tot vervollständigt werden: Wenn δ(s, a) nicht definiert ist, ergänze δ(s, a) = tot Beispiel: 54

4.3.1 Endliche Automaten Lemma: Für jeden DFA A existiert eine reguläre Grammatik G mit L(A)=L(G) Beispiel: DFA zum Erkennen von { w { 0, 1 } : w = 0 n 1 m mit n 0, m > 0 } 0 s 0 s 1 1 0 0 1 1 s 2 Reguläre Grammatik G = (N, T, P, S): N = {s 0, s 1, s 2 }, T = {0, 1}, S = s 0 P = { s 0 0s 0, s 0 1s 1, s 1 1s 1, s 1 ε, s 1 0s 2, s 2 0s 2, s 2 1s 2 } erkennt genau dieselbe Sprache 55

4.3.1 Endliche Automaten Lemma: Für jede reguläre Grammatik G existiert ein DFA A mit L(G)=L(A) Theorem: Reguläre Grammatiken und deterministische endliche Automaten sind bezüglich ihrer Sprachen gleich mächtig Endliche Automaten liefern die operativen Werkzeuge zum Lösen des Entscheidungsproblems für reguläre Grammatiken. Dieselbe Funktion erfüllen nichtdeterministische Kellerautomaten (kontextfreie Grammatiken), linear beschränkte Automaten (kontextsensitive Grammatiken), und Turingmaschine (Typ-0 Grammatiken). 56

Exkurs: Mustererkennung Mustererkennung: Ein unbekanntes Muster einer Klasse C k aus N möglichen Klassen C i, 1 i N, zuordnen. Bei Unsicherheit ist eine Rückweisung erwünscht. Anwendungen: OCR (Optical Character Recognition) Biometrie (Personenidentifikation und -verifikation): Gesicht, Iris, Fingerabdruck, Unterschrift, Handgeometrie, Palmprint, Ohrgeometrie, Gangart, DNA, etc. Industrielle Anwendungen: Optische Qualitätskontrolle Medizinische Anwendungen: Diagnose (gesund / Krankheit A / Krankheit B /... / unklar), erstellt anhand von Bildern/Messdaten 57

Exkurs: Mustererkennung Die Quellen von Mustern sind vielfältig: Automatische Auskunftssysteme (z.b. Fahrplan, Musiksuche; Sprachsignale) Prognose von Börsenentwicklung (Daten) Klassifikation von Spam-Mails (Texte) Detektion von Doppelpublikationen, abgeschriebenen Programmen, etc. (Texte) 58

Exkurs: Mustererkennung Driving Assistance Systems: The optimal deployment of vehicle airbags for maximum protection moreover requires information about the occupant s size and position. The aim of this system is to detect the occupancy of passenger seat and classify it into one of the following four classes: 1) Empty seat; 2) Rearward facing infant seat (RFIS); 3) Forward facing child seat; 4) Adult. (P.Devarakota, et al. CVPR, 2007) 59

Exkurs: Mustererkennung Camera-Based OCR: 60

Exkurs: Mustererkennung Mobile Multimedia Processing: 61

Exkurs: Mustererkennung Syntaktische Mustererkennung: Modellierung von Musterklassen mit Grammatiken Klassifikation in Form von Syntaxanalyse 62

Exkurs: Mustererkennung Ein unbekanntes Muster wird mit terminalen Symbolen x = x 1 x n dargestellt. Die Klassifikation erfolgt durch Entscheidung, ob x in L(G i ) ist. 63

Zusammenfassung 4.1 (Formale) Aspekte von Programmiersprachen 4.2 Grammatiken 4.2.1 Intuitive Einführung 4.2.2 Formale Definition 4.2.3 Chomsky-Hierarchie 4.2.4 Reguläre Grammatiken 4.2.5 Formale Syntax von Scheme 4.3 Automaten 4.3.1 Endliche Automaten 64