ist ein regulärer Ausdruck.

Ähnliche Dokumente
Formale Methoden 1. Gerhard Jäger 16. Januar Uni Bielefeld, WS 2007/2008 1/19

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Satz (Abschluß unter der Stern-Operation)

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Einführung in die Theoretische Informatik

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Kapitel 2: Formale Sprachen Gliederung

Übersicht. 3 3 Kontextfreie Sprachen

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016

äußere Klammern können entfallen, ebenso solche, die wegen Assoziativität von + und Konkatenation nicht notwendig sind:

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)

Kurz-Skript zur Theoretischen Informatik I

Theoretische Grundlagen der Informatik

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

Formale Methoden 2 LVA ,

Endliche Automaten. δ : Z Σ Z die Überführungsfunktion, z 0 Z der Startzustand und F Z die Menge der Endzustände (Finalzustände).

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

Technische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 2. Mai HA-Lösung. TA-Lösung

Technische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 11. Juli HA-Lösung. TA-Lösung

Einführung in die Computerlinguistik Kontextfreie Grammatiken und. Kellerautomaten. Dozentin: Wiebke Petersen

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

Grundlagen der Theoretischen Informatik

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Reguläre Ausdrücke. Michael Jäger. 4. April 2017

Theoretische Informatik

Proseminar TI: Kellerautomaten. 1 Motivation. 2 Einführung. Vortrag: Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer.

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Einführung in die Theoretische Informatik

Grundlagen der Theoretischen Informatik

Induktionsprinzipien für andere Bereiche. falscher Induktionsbeweis über N Übung Beispiele. Reguläre Σ-Sprachen Abschnitt 2.

Automatentheorie und formale Sprachen

Proseminar Automatentheorie. Thema: Berry Sethi Algorithmus. Von Christopher Haas

Rekursiv aufzählbare Sprachen

Informatik IV Theoretische Informatik

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

Formale Sprachen und endliche Automaten

Theoretische Informatik I

Zusammenfassung der letzten LVA. Endliche Automaten mit Epsilon-Übergängen. Inhalte der Lehrveranstaltung (cont d)

Grundbegriffe der Informatik

Theoretische Grundlagen des Software Engineering

Grundlagen der Theoretischen Informatik

Formale Sprachen. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

... = für δ(z, a i ) = z. Abbildung 4.4: Interpretation der Arbeitsweise eines endlichen Automaten

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

2.2 Reguläre Sprachen Endliche Automaten

5.2 Endliche Automaten

Theoretische Grundlagen der Informatik

Lösungsvorschläge und Erläuterungen Klausur zur Vorlesung Grundbegriffe der Informatik 15. September 2016

Einführung in die Computerlinguistik Satz von Kleene

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Einführung in die Computerlinguistik

Grundbegriffe der Informatik

Theoretische Informatik. Alphabete, Worte, Sprachen

Automatentheorie und formale Sprachen rechtslineare Grammatiken

Einführung in die Theoretische Informatik

Automatentheorie und formale Sprachen

Theoretische Informatik I

Theorie der Informatik

1 Eliminieren von ɛ-übergängen

Einführung in die Computerlinguistik Formale Grammatiken rechtslineare und kontextfreie Grammatiken Kellerautomaten

Lineare Algebra I Abschlussklausur

Grundbegriffe der Informatik Tutorium 11

Motivation natürliche Sprachen

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 7 Lösungen. Wiederholung: Pumping-Lemma für kontextfreie Sprachen

Satz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung

2. Klausur Einführung in die Theoretische Informatik Seite 1 von Welche der folgenden Aussagen zur Aussagenlogik ist falsch?

Theoretische Grundlagen der Informatik

Lösungsvorschläge und Erläuterungen Klausur zur Vorlesung Grundbegriffe der Informatik 6. März 2017

Theoretische Grundlagen der Informatik

Abbildungen, injektiv, surjektiv, bijektiv

Einführung in die Computerlinguistik Satz von Kleene

Spracherkennung (Syntaxanalyse)

Beweisidee: 1 Verwende den Keller zur Simulation der Grammatik. Leite ein Wort. 2 Problem: der Keller darf nicht beliebig verwendet werden, man kann

Übung zu Grundbegriffe der Informatik. Simon Wacker. 15. November 2013

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Theoretische Informatik Mitschrift

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

FORMALE SYSTEME. 6. Vorlesung: Reguläre Ausdrücke. TU Dresden, 27. Oktober Markus Krötzsch

Einführung in die Computerlinguistik reguläre Sprachen und endliche Automaten

q 0 q gdw. nicht (q A) (q A) q i+1 q gdw. q i q oder ( a Σ) δ(q, a) i δ(q, a) L = {a n b n : n N} für a, b Σ, a b

Einführung in die Theoretische Informatik

10 Kellerautomaten. Kellerautomaten

Theoretische Grundlagen der Informatik

Grundbegriffe der Informatik

Mehrdeutige Grammatiken

Kapitel IV Formale Sprachen und Grammatiken

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

Grundlagen der Theoretischen Informatik

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier

Kontextfreie Sprachen Kontextfreie Sprachen und Grammatiken. Satzformen sind die Wörter aus (N T ). Notation: Wir verwenden oft

Formale Grundlagen der Wirtschaftsinformatik

Transkript:

Dr. Sebastian Bab WiSe 12/13 Theoretische Grlagen der Informatik für TI Termin: VL 11 vom 22.11.2012 Reguläre Ausdrücke Reguläre Ausdrücke sind eine lesbarere Notation für Sprachen Denition 1 (Regulärer Ausdruck) Sei Σ ein Alphabet. Reguläre Ausdrücke sind dann induktiv wie folgt deniert: ist ein regulärer Ausdruck. ɛ ist ein regulärer Ausdruck. Für alle a Σ ist a ein regulärer Ausdruck. Für zwei reguläre Ausdrücke α, β sind auch αβ, (α β) (α) reguläre Ausdrücke Beispiel mit Alphabet Σ = {a, b} b (a abaab) (bbb) (((ab) bba)) aa Denition 2 (Erzeugte Sprache eines regulären Ausdruckes) Sei α ein regulärer Ausdruck. Dann ist L(α), die durch α erzeugte Sprache, wie folgt deniert: Wenn α =, dann L(α) =. Wenn α = ɛ, dann L(α) = {λ}. Wenn α = a Σ, dann L(α) = {a}. Wenn α = βγ, dann L(α) = L(β)L(γ). Wenn α = (β γ), dann L(α) = L(β) L(γ). Wenn α = (β), dann L(α) = L(β). fortgeführtes Beispiel 1

L(b) = {b} L ((a abaab)) = {a, abaab} L ((bbb) ) = {λ, bbb, bbbbbb,... } L ((((ab) bba)) aa) = {aa, abaa, bbaaa, abbbaabbbaaa,... } Satz 3 Jede endliche Sprache ist durch einen regulären Ausdruck beschreibbar. Beweis: Sei L = {a 1,..., a n } eine beliebige endliche Sprache. Sei α = ((... ((a 1 a 2 ) a 3 )... a n 1 ) a n ) ein regulärer Ausdruck. Dann ist L(α) = L. Satz 4 Jede durch einen regulären Ausdruck beschriebene Sprache ist regulär. Beweis: Wir beweisen den Satz durch strukturelle Induktion über den Aufbau regulärer Ausdrücke. Induktionsanfang: Sei α ein regulärer Ausdruck der Form 1. α =. Dann ist L(α) = L( ) =. Die leere Sprache ist durch eine reguläre Grammatik ohne Produktionen beschreibbar. 2. α = ɛ. Dann ist L(α) = L(ɛ) = {λ}. Eine reguläre Grammatik G mit genau einer Produktion S λ erzeugt genau die gesuchte Sprache. 3. α = a Σ. Dann ist L(α) = L(a) = {a}. Eine reguläre Grammatik G mit genau einer Produktion S a erzeugt genau die gesuchte Sprache. Induktionsvoraussetzung: Seien α β zwei reguläre Ausdrücke wobei L(α) L(β) regulär Sprachen sind. Induktionsschritt: Wir zeigen nun, dass auch L(αβ), L ((α β)) L ((α) ) reguläre Sprachen sind. Wegen der Induktionsvoraussetzung müssen zwei Grammatiken G 1 = (V 1, σ, S 1, P 1 ) G 2 = (V 2, σ, S 2, P 2 ) existieren mit L(G 1 ) = L(α) L(G 2 ) = L(β). Dabei seien V 1 V 2 disjunkt. 2

1. zu zeigen: L(αβ) ist regulär: Wir konstruieren eine reguläre Grammatik G = (V, Σ, S, P ) mit V = V 1 V 2 S = S 1 so, dass L(G) = L(αβ). Die Produktionen setzen sich folgendermaÿen zusammen: Falls λ L(α) λ L(β), dann gilt S λ P. Falls λ L(α) λ L(β), dann gilt S aa 2 P für alle S 2 aa 2 P 2 S a P für alle S 2 a P 2. Für alle A 1/2 ab 1/2 P 1/2 gilt auch A 1/2 ab 1/2 P Für alle A 1 a P 1 gilt auch A 1 as 2 P Falls λ L(β), dann gilt A 1 a P für alle A 1 a P 1 Für alle A 2 a P 2 gilt auch A 2 a P Die angegebene Grammatik arbeitet wie G 1. Wenn ein Wort durch G 1 erzeugt wurde, wechselt sie in den Startzustand von G 2 statt aufzuhören hängt ein Wort an, welches durch G 2 erzeugt wird. 2. zu zeigen: L((α β)) ist regulär: Wir konstruieren eine reguläre Grammatik G = (V, Σ, S, P ) mit V = V 1 V 2 {S} S V 1 S V 2 so, dass L(G) = L((α β)). Die Produktionen setzen sich folgendermaÿen zusammen: Falls λ L(α) oder λ L(β), dann gilt S λ P. Für alle S 1/2 aa 1/2 P 1/2 ist auch S aa 1/2 P Für alle S 1/2 a P 1/2 ist auch S a P Für alle A 1/2 ab 1/2 P 1/2 ist auch A 1/2 ab 1/2 P Für alle A 1/2 a P 1/2 ist auch A 1/2 a P Die angegebene Grammatik kann das leere Wort direkt vom Startsymbol her erzeugen, falls dies notwendig ist. Sie entscheidet sich ansonsten direkt am Startsymbol für eine Untergrammatik arbeitet dann in dieser Grammatik weiter. 3. zu zeigen: L((α) ) ist regulär: Wir konstruieren eine reguläre Grammatik G = (V, Σ, S, P ) mit V = V 1 {S} S V 1 so, dass L(G) = L((α) ). Die Produktionen setzen sich folgendermaÿen zusammen: S λ P. Für alle S 1 aa 1 P 1 ist auch S aa 1 P Für alle S 1 a P 1 ist auch S a P Für alle A 1 ab 1 P 1 ist auch A 1 ab 1 P Für alle A 1 a P 1 sind auch A 1 a P A 1 as 1 P 3

Die angegebene Grammatik kann das leere Wort direkt vom Startsymbol her erzeugen. Sie erzeugt ein Wort genau wie dies in Grammatik G 1 geschieht, mit dem Unterschied, dass an den Stellen an denen G 1 terminiert, die Grammatik G die Wahl hat, ein weiteres Wort anzuhängen, oder ebenfalls zu terminieren. Satz 5 Reguläre Sprachen sind abgeschlossen unter den Operationen,,. Also sind für zwei reguläre Sprachen L 1 L 2 auch L 1, L 1 L 2, L 1 L 2 reguläre Sprachen. Die Beweise verlaufen analog zum Beweis, dass reguläre Ausdrücke reguläre Sprachen erzeugen. Den Umgang mit Rechenregelnfür reguläre Ausdrücke nennt man Reguläre Algebra. Satz 6 (Kommutativität) Seien α β zwei reguläre Ausdrücke. Dann gilt L((α β)) = L((β α)). Es gilt allerdings nicht L(αβ) = L(βα), wie man an dem einfachen Beispiel α = a, β = b erkennen kann. Es würde sich sonst {ab} = {ba} ergeben, was oensichtlich nicht der Fall ist. Satz 7 (Assoziativität) Seien α, β γ reguläre Ausdrücke. Dann gilt L(((α β) γ)) = L(α (β γ)) L((αβ)γ) = L(α(βγ)). Assoziativitätsgesetze weisen oft auf unnötige Klammerung hin. Daher kann man die Klammerung in diesen Fällen meist einfach weglassen. Satz 8 (Neutrales Element) Sei α ein regulärer Ausdruck. Dann gilt L((α )) = L( α) = L(α) L(αɛ) = L(ɛα) = L(α). 4

Satz 9 (Annihilator) Sei α ein regulärer Ausdruck. Dann gilt L(α ) = L( α) = L( ). Da es in der leeren Sprache keine Worte gibt, ndet sich auch kein Wort, welches verknüpft wurde aus einem Wort einer beliebigen Sprache einem Wort aus der leeren Sprache. Satz 10 (Distributivität) Seien α, β γ reguläre Ausdrücke. Dann gilt L(α(β γ)) = L((αβ αγ)) L((α β)γ) = L((αγ βγ)). Satz 11 (Idempotenz) Sei α ein regulärer Ausdruck. Dann gilt L((α α)) = L(α). Satz 12 (Hüllengesetze) Sei α ein regulärer Ausdruck. Dann gilt L(((α) ) ) = L((α) ) (mehrfache Anwendung des Sternoperators liefert keine weiteren Worte), L(( ) ) = L(ɛ) (das leere Wort ist immer in der Kleeneschen Hülle einer Sprache), L((ɛ) ) = L(ɛ) Die Ausdrücke ɛ sind die einzigen regulären Ausdrücke, die nach Hüllenbildung immernoch endliche Sprache erzeugen. Es lassen sich weitere Gesetze, wie z.b. L((α β) ) = L(((α) (β) ) ) nden. 5