84
Grundbegrie der Informatik Kapitel : Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester / GBI — Grundbegrie der Informatik KIT, Institut für Theoretische Informatik /

Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Grundbegri�e der InformatikKapitel 19: Reguläre Ausdrücke und rechtslineare Grammatiken

Thomas Worsch

KIT, Institut für Theoretische Informatik

Wintersemester 2015/2016

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 1 / 49

Page 2: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Was können endliche Akzeptoren?manche Sprachen mit EA erkennbar

z. B. {a}+{b} ∪ {b}+{a}

manche Sprachen nicht mit EA erkennbarz. B. {akbk | k ∈ N0}

Charakterisierung der erkennbaren Sprachen?i. e. Beschreibung ohne Benutzung endlicher Akzeptoren?

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 2 / 49

Page 3: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Überblick

Reguläre AusdrückeDefinitionBeschriebene formale SpracheBeispiel: Datums-/Zeitangaben in EmailsZusammenhang mit Automaten und Grammatiken

Rechtslineare Grammatiken (Typ 3)

Kantorowitsch-Bäume und strukturelle Induktion

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 3 / 49

Page 4: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Wo sind wir?

Reguläre AusdrückeDefinitionBeschriebene formale SpracheBeispiel: Datums-/Zeitangaben in EmailsZusammenhang mit Automaten und Grammatiken

Rechtslineare Grammatiken (Typ 3)

Kantorowitsch-Bäume und strukturelle Induktion

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 4 / 49

Page 5: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Wo sind wir?

Reguläre AusdrückeDefinitionBeschriebene formale SpracheBeispiel: Datums-/Zeitangaben in EmailsZusammenhang mit Automaten und Grammatiken

Rechtslineare Grammatiken (Typ 3)

Kantorowitsch-Bäume und strukturelle Induktion

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 5 / 49

Page 6: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Der Begri� regulärer Ausdruck hat heute verschiedeneBedeutungen

Beschreibung formaler Sprachen

Ursprung:

Stephen KleeneRepresentation of Events in Nerve Nets and Finite Automatain: Shannon, McCarthy, Ashby (eds.): Automata Studies, 1956

heute: verschiedene Bedeutungenin dieser Vorlesung: die „klassische“ DefinitionVerallgemeinerung: regular expressions

sehr nützlich (emacs, grep, sed, . . . , Java, Python, . . . )

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 6 / 49

Page 7: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Definition regulärer Ausdrücke (1)Alphabet Z = {|, (, ), *, O/} von «Hilfssymbolen»

Alphabet A enthalte kein Zeichen aus Z

regulärer Ausdruck über A ist eine Zeichenfolge über demAlphabet A ∪ Z , die gewissen Vorschri�en genügt.

Menge der regulären Ausdrücke (RA) ist wie folgt festgelegt:O/ ist RAfür jedes x ∈ A ist x RAwenn R1 und R2 RA sind, dann auch (R1|R2) und (R1R2)wenn R ein RA ist, dann auch (R*)Nichts anderes sind reguläre Ausdrücke.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 7 / 49

Page 8: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Beispiele

sei A = {a, b}

Beispiele regulärer Ausdrücke:O/ a b(ab) (O/b) (aO/)((ab)a) (((ab)a)a) ((ab)(aa))(O/|b) (a|b) (a|(ba))((a(a|b))|b) (a|(b|(a|a)))(O/*) (a*) ((a*)*)((ba)(b*)) (((ba)b)*)(((((ab)b)*)*)|(O/*))

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 8 / 49

Page 9: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Klammereinsparungsregeln

„Stern- vor Punktrechnung“

„Punkt- vor Strichrechnung“

Beispiel:R1|R2R3* Kurzform für(R1|(R2(R3*)))

Bei mehreren gleichen binären Operatoren ohne Klammerngilt das als links geklammert

BeispielR1|R2|R3 Kurzform für((R1|R2)|R3)

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 9 / 49

Page 10: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Beispiele für Klammereinsparungsregelnabaa sta� (((ab)a)a)

ab(aa) sta� ((ab)(aa))

a(a|b)|b sta� ((a(a|b))|b)

(abb)**|O/* sta� (((((ab)b)*)*)|(O/*))

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 10 / 49

Page 11: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Nichtbeispielekeine regulären Ausdrücke über {a, b}:

(|b) vor | fehlt ein regulärer Ausdruck|O/| vor und hinter | fehlt je ein regulärer Aus-

druck()ab zwischen ( und ) fehlt ein regulärer Ausdruck((ab) Klammern müssen „gepaart“ au�reten*(ab) vor * fehlt ein regulärer Ausdruckc* c ist nicht Zeichen des Alphabetes

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 11 / 49

Page 12: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Definition der Syntax regulärer Ausdrücke (2)alternative Definition mit Hilfe einerkontextfreien Grammatik

reguläre Ausdrücke:die von der folgenden Grammatik erzeugten Wörter

G = ({R}, {|, (, ), *, O/} ∪A, R, P )

mit P = {R → O/}

∪ {R → x | x ∈ A}

∪ {R → (R|R), R → (RR)}

∪ {R → (R*)}

vergleiche wohlgeformte Klammerausdrücke (Kap. 11)

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 12 / 49

Page 13: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Ableitungsbaum eines regulären Ausdrucks

R

( R

( R

( R

a

* )

R

( R

b

* )

)

* )

(((a*)(b*))*)

oder kürzer(a*b*)*

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 13 / 49

Page 14: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Wo sind wir?

Reguläre AusdrückeDefinitionBeschriebene formale SpracheBeispiel: Datums-/Zeitangaben in EmailsZusammenhang mit Automaten und Grammatiken

Rechtslineare Grammatiken (Typ 3)

Kantorowitsch-Bäume und strukturelle Induktion

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 14 / 49

Page 15: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Durch R beschriebene formale Sprache 〈R〉〈O/〉 = {}〈x〉 = {x } für jedes x ∈ A〈R1|R2〉 = 〈R1〉 ∪ 〈R2〉

〈R1R2〉 = 〈R1〉 · 〈R2〉

〈R*〉 = 〈R〉∗

Definition folgt der für reguläre Ausdrücke

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 15 / 49

Page 16: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Beispiele für 〈R〉R = a|b: Dann ist〈R〉 = 〈a|b〉 = 〈a〉 ∪ 〈b〉 = {a} ∪ {b} = {a,b}

R = (a|b)*: Dann ist〈R〉 = 〈(a|b)*〉 = 〈a|b〉∗ = {a,b}∗

R = (a*b*)*: Dann ist〈R〉 = 〈(a*b*)*〉 = 〈a*b*〉∗

= (〈a*〉〈b*〉)∗ = (〈a〉∗〈b〉∗)∗ = ({a}∗{b}∗)∗

Nachdenken: ({a}∗{b}∗)∗ = {a,b}∗

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 16 / 49

Page 17: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Beispiele für 〈R〉R = a|b: Dann ist〈R〉 = 〈a|b〉 = 〈a〉 ∪ 〈b〉 = {a} ∪ {b} = {a,b}

R = (a|b)*: Dann ist〈R〉 = 〈(a|b)*〉 = 〈a|b〉∗ = {a,b}∗

R = (a*b*)*: Dann ist〈R〉 = 〈(a*b*)*〉 = 〈a*b*〉∗

= (〈a*〉〈b*〉)∗ = (〈a〉∗〈b〉∗)∗ = ({a}∗{b}∗)∗

Nachdenken: ({a}∗{b}∗)∗ = {a,b}∗

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 16 / 49

Page 18: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Beispiele für 〈R〉R = a|b: Dann ist〈R〉 = 〈a|b〉 = 〈a〉 ∪ 〈b〉 = {a} ∪ {b} = {a,b}

R = (a|b)*: Dann ist〈R〉 = 〈(a|b)*〉 = 〈a|b〉∗ = {a,b}∗

R = (a*b*)*: Dann ist〈R〉 = 〈(a*b*)*〉 = 〈a*b*〉∗

= (〈a*〉〈b*〉)∗ = (〈a〉∗〈b〉∗)∗ = ({a}∗{b}∗)∗

Nachdenken: ({a}∗{b}∗)∗ = {a,b}∗

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 16 / 49

Page 19: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Beispiele für 〈R〉R = a|b: Dann ist〈R〉 = 〈a|b〉 = 〈a〉 ∪ 〈b〉 = {a} ∪ {b} = {a,b}

R = (a|b)*: Dann ist〈R〉 = 〈(a|b)*〉 = 〈a|b〉∗ = {a,b}∗

R = (a*b*)*: Dann ist〈R〉 = 〈(a*b*)*〉 = 〈a*b*〉∗

= (〈a*〉〈b*〉)∗ = (〈a〉∗〈b〉∗)∗ = ({a}∗{b}∗)∗

Nachdenken: ({a}∗{b}∗)∗ = {a,b}∗

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 16 / 49

Page 20: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Bestimmung von 〈R〉 entlang des Ableitungsbaums von R

R

( R

( R

( R

a

* )

R

( R

b

* )

)

* )

analog zur Auswertungarithmetischer Ausdrücke

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 17 / 49

Page 21: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Bestimmung von 〈R〉 entlang des Ableitungsbaums von R

R

( R

( R

( R

a {a}

* )

R

( R

b {b}

* )

)

* )

analog zur Auswertungarithmetischer Ausdrücke

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 17 / 49

Page 22: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Bestimmung von 〈R〉 entlang des Ableitungsbaums von R

R

( R

( R

( R {a}

a {a}

* )

R

( R {b}

b {b}

* )

)

* )

analog zur Auswertungarithmetischer Ausdrücke

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 17 / 49

Page 23: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Bestimmung von 〈R〉 entlang des Ableitungsbaums von R

R

( R

( R {a}∗

( R {a}

a {a}

* )

R {b}∗

( R {b}

b {b}

* )

)

* )

analog zur Auswertungarithmetischer Ausdrücke

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 17 / 49

Page 24: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Bestimmung von 〈R〉 entlang des Ableitungsbaums von R

R

( R {a}∗{b}∗

( R {a}∗

( R {a}

a {a}

* )

R {b}∗

( R {b}

b {b}

* )

)

* )

analog zur Auswertungarithmetischer Ausdrücke

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 17 / 49

Page 25: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Bestimmung von 〈R〉 entlang des Ableitungsbaums von R

R ({a}∗{b}∗)∗

( R {a}∗{b}∗

( R {a}∗

( R {a}

a {a}

* )

R {b}∗

( R {b}

b {b}

* )

)

* )

analog zur Auswertungarithmetischer Ausdrücke

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 17 / 49

Page 26: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Wie ist das denn eigentlich?Kann man «allgemein» von regulären Ausdrücken R1,R2feststellen, ob 〈R1〉 = 〈R2〉 ist?

Geht das algorithmisch?

Welche formalen Sprachen sind denn durch reguläreAusdrücke beschreibbar?

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 18 / 49

Page 27: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Äquivalenz regulärer AusdrückeEs gibt Algorithmen, um für reguläre Ausdrücken R1,R2festzustellen, ob 〈R1〉 = 〈R2〉 ist

sogar konzeptionell ziemlich einfache

Aber: Dieses Problem ist PSPACE-vollständig.Definition: in einer anderen Vorlesungalle bisher bekannten (!) Algorithmen sindsehr sehr sehr sehr langsam

Man weiß nicht, ob es vielleicht doch Algorithmen mitpolynomieller Laufzeit für das Problem gibt.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 19 / 49

Page 28: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Weitere Beispiele für 〈R〉ab(ab)*〈ab(ab)*〉 = 〈ab〉〈(ab)*〉 = {ab}{ab}∗ = {ab}+

allgemein: R(R)*〈R〉〈(R)*〉 = 〈R〉〈R〉∗ = 〈R〉+

gelegentlich Abkürzung (R)+ bzw. R+

abc|O/*〈abc|O/*〉 = · · · = 〈abc〉 ∪ 〈O/*〉 = 〈abc〉 ∪ 〈O/〉∗

= {abc} ∪ {}∗ = {abc, ε }

allgemein: R|O/*:〈R|O/*〉 = 〈R〉 ∪ 〈O/*〉 = 〈R〉 ∪ {ε }m. a. W.: das Vorkommen eines Wortes aus 〈R〉 ist „optional“verschiedentlich Abkürzungen wie z. B. R? oder . . .

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 20 / 49

Page 29: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Weitere Beispiele für 〈R〉ab(ab)*〈ab(ab)*〉 = 〈ab〉〈(ab)*〉 = {ab}{ab}∗ = {ab}+

allgemein: R(R)*〈R〉〈(R)*〉 = 〈R〉〈R〉∗ = 〈R〉+

gelegentlich Abkürzung (R)+ bzw. R+

abc|O/*〈abc|O/*〉 = · · · = 〈abc〉 ∪ 〈O/*〉 = 〈abc〉 ∪ 〈O/〉∗

= {abc} ∪ {}∗ = {abc, ε }

allgemein: R|O/*:〈R|O/*〉 = 〈R〉 ∪ 〈O/*〉 = 〈R〉 ∪ {ε }m. a. W.: das Vorkommen eines Wortes aus 〈R〉 ist „optional“verschiedentlich Abkürzungen wie z. B. R? oder . . .

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 20 / 49

Page 30: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Weitere Beispiele für 〈R〉ab(ab)*〈ab(ab)*〉 = 〈ab〉〈(ab)*〉 = {ab}{ab}∗ = {ab}+

allgemein: R(R)*〈R〉〈(R)*〉 = 〈R〉〈R〉∗ = 〈R〉+

gelegentlich Abkürzung (R)+ bzw. R+

abc|O/*〈abc|O/*〉 = · · · = 〈abc〉 ∪ 〈O/*〉 = 〈abc〉 ∪ 〈O/〉∗

= {abc} ∪ {}∗ = {abc, ε }

allgemein: R|O/*:〈R|O/*〉 = 〈R〉 ∪ 〈O/*〉 = 〈R〉 ∪ {ε }m. a. W.: das Vorkommen eines Wortes aus 〈R〉 ist „optional“verschiedentlich Abkürzungen wie z. B. R? oder . . .

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 20 / 49

Page 31: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Weitere Beispiele für 〈R〉ab(ab)*〈ab(ab)*〉 = 〈ab〉〈(ab)*〉 = {ab}{ab}∗ = {ab}+

allgemein: R(R)*〈R〉〈(R)*〉 = 〈R〉〈R〉∗ = 〈R〉+

gelegentlich Abkürzung (R)+ bzw. R+

abc|O/*〈abc|O/*〉 = · · · = 〈abc〉 ∪ 〈O/*〉 = 〈abc〉 ∪ 〈O/〉∗

= {abc} ∪ {}∗ = {abc, ε }

allgemein: R|O/*:〈R|O/*〉 = 〈R〉 ∪ 〈O/*〉 = 〈R〉 ∪ {ε }m. a. W.: das Vorkommen eines Wortes aus 〈R〉 ist „optional“verschiedentlich Abkürzungen wie z. B. R? oder . . .

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 20 / 49

Page 32: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Wo sind wir?

Reguläre AusdrückeDefinitionBeschriebene formale SpracheBeispiel: Datums-/Zeitangaben in EmailsZusammenhang mit Automaten und Grammatiken

Rechtslineare Grammatiken (Typ 3)

Kantorowitsch-Bäume und strukturelle Induktion

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 21 / 49

Page 33: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

RFC 5322: Internet Message Formatsiehe z. B. http://tools.ietf.org/html/rfc5322

legt fest, was wo in einer Email stehen muss, soll, darf oderauch nicht . . .

benutzt dazu etwas namens ABNF„augmented Backus Naur form“seinerseits spezifiziert in RFC 5234für nachfolgendes Beispiel: im wesentlichen reguläreAusdrückeim allgemeinen deutlich mächtiger

Beispiel: Datums- und Zeitangaben in EmailsDate: Wed, 21 Jan 2015 12:08:47 +0100

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 22 / 49

Page 34: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

RFC 5322, Abschni� 3.3: Date and Time Specification,fast wörtlich:

date-time = [ day-of-week "," ] date time [CFWS]

day-of-week = ([FWS] day-name)day-name = "Mon" / "Tue" / "Wed" / "Thu" / . . .

date = day month yearday = ([FWS] 1*2DIGIT FWS)month = "Jan" / "Feb" / "Mar" / "Apr" / . . .year = (FWS 4*DIGIT FWS)

time = time-of-day zonetime-of-day = hour ":" minute [ ":" second ]hour = 2DIGITminute = 2DIGITsecond = 2DIGITzone = (FWS ( "+" / "-" ) 4DIGIT)

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 23 / 49

Page 35: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Datums- und Zeitangaben in Emails (2)Beispieltime-of-day = hour ":" minute [ ":" second ]hour = 2DIGIT

in jeder Zeilelinks vom = ein Name für einen regulären Ausdruckrechts vom = etwas wie ein regulärer Ausdruck,der sta� Teilausdrücken deren Namen benutzen kann

an anderer Stelle definiert:DIGIT = 0|1|2|3|4|5|6|7|8|9, also〈 DIGIT 〉 = {0,1,2,3,4,5,6,7,8,9}

2DIGIT ist Abkürzung für DIGIT DIGIT , also z. B.〈 2DIGIT 〉 = {00, 01, 02, . . . , 99}

also z. B. 〈 hour 〉 = {00, 01, 02, . . . , 99}

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 24 / 49

Page 36: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Datums- und Zeitangaben in Emails (3)Beispieltime-of-day = hour ":" minute [ ":" second ]hour = 2DIGITminute = 2DIGITsecond = 2DIGIT

Wörter in Anführungszeichen stehen für sich

eckige Klammern bedeuten, dass ein Teil optional ist

alsotime-of-day = hour : minute | hour : minute : second

Beispiele: 09:50 oder 09:50:17

beachte:9:50 ist nicht syntaktisch korrektaber 39:71 ist syntaktisch korrekt

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 25 / 49

Page 37: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Wo sind wir?

Reguläre AusdrückeDefinitionBeschriebene formale SpracheBeispiel: Datums-/Zeitangaben in EmailsZusammenhang mit Automaten und Grammatiken

Rechtslineare Grammatiken (Typ 3)

Kantorowitsch-Bäume und strukturelle Induktion

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 26 / 49

Page 38: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Charakterisierungen regulärer Sprachen

SatzFür jede formale Sprache L sind äquivalent:1. L kann von einem endlichen Akzeptor erkannt werden.2. L kann durch einen regulären Ausdruck beschrieben werden.3. L kann von einer rechtslinearen Grammatik erzeugt werden.

Solche Sprachen heißen regulär.

Beweis in «Theoretische Grundlagen der Informatik»

rechtslineare Grammatiken kommen gleichsie sind kontextfrei,also ist jede reguläre Sprache eine kontextfreie Spracheaber nicht umgekehrt

Gegenbeispiel: {akbk | k ∈ N0}

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 27 / 49

Page 39: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Zum Beweis des Satzeskonstruktiv:

von endlichem Akzeptor A zu regulärem Ausdruck R mitL(A) = 〈R〉

„mi�el schwer“, z. B. inspiriert vom Algorithmus von Warshall

von regulärem Ausdruck R zu rechtslinearer Grammatik G mit〈R〉 = L(G ):

„relativ leicht“von rechtslinearer Grammatik G zu endlichem Akzeptor A mitL(G ) = L(A):

„am schwierigsten“

beachte: für Rückrichtungen keine Konstruktionen nötig

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 28 / 49

Page 40: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Zum Beweis des Satzeskonstruktiv:

von endlichem Akzeptor A zu regulärem Ausdruck R mitL(A) = 〈R〉

„mi�el schwer“, z. B. inspiriert vom Algorithmus von Warshallvon regulärem Ausdruck R zu rechtslinearer Grammatik G mit〈R〉 = L(G ):

„relativ leicht“

von rechtslinearer Grammatik G zu endlichem Akzeptor A mitL(G ) = L(A):

„am schwierigsten“

beachte: für Rückrichtungen keine Konstruktionen nötig

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 28 / 49

Page 41: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Zum Beweis des Satzeskonstruktiv:

von endlichem Akzeptor A zu regulärem Ausdruck R mitL(A) = 〈R〉

„mi�el schwer“, z. B. inspiriert vom Algorithmus von Warshallvon regulärem Ausdruck R zu rechtslinearer Grammatik G mit〈R〉 = L(G ):

„relativ leicht“von rechtslinearer Grammatik G zu endlichem Akzeptor A mitL(G ) = L(A):

„am schwierigsten“

beachte: für Rückrichtungen keine Konstruktionen nötig

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 28 / 49

Page 42: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Zum Beweis des Satzeskonstruktiv:

von endlichem Akzeptor A zu regulärem Ausdruck R mitL(A) = 〈R〉

„mi�el schwer“, z. B. inspiriert vom Algorithmus von Warshallvon regulärem Ausdruck R zu rechtslinearer Grammatik G mit〈R〉 = L(G ):

„relativ leicht“von rechtslinearer Grammatik G zu endlichem Akzeptor A mitL(G ) = L(A):

„am schwierigsten“

beachte: für Rückrichtungen keine Konstruktionen nötig

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 28 / 49

Page 43: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Was ist wichtigDas sollten Sie mitnehmen:

Definition „klassischer“ regulärer Ausdrückeatomare: O/, a ∈ Azusammengesetzte: (R1|R2), (R1R2), (R)*

wissen: reguläre Ausdrücke und die VerallgemeinerungRegular Expressions sind z. B. bei Textverarbeitungsaufgabenmanchmal nützlich

Das sollten Sie üben:zu L ein R mit 〈R〉 = L konstruierenzu R das 〈R〉 bestimmen

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 29 / 49

Page 44: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Wo sind wir?

Reguläre Ausdrücke

Rechtslineare Grammatiken (Typ 3)

Kantorowitsch-Bäume und strukturelle Induktion

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 30 / 49

Page 45: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Motivationkontextfreie Grammatiken erzeugen jedenfalls zum Teilandere formale Sprachen, als man mit endlichen Akzeptorenerkennen kann.

Beispiel:G = ({X }, {a,b},X , {X → aXb | ε }) erzeugt {akbk | k ∈ N0}

und diese Sprache ist nicht regulär.

Kann man kontextfreie Grammatiken so einschränken,dass sie zu endlichen Akzeptoren passen?

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 31 / 49

Page 46: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Rechtslineare Grammatiken: DefinitionEine rechtslineare Grammatik ist eine kontextfreieGrammatik G = (N ,T , S, P ), die der folgendenEinschränkung genügt: Jede Produktion ist

entweder von der Form X → w mit w ∈ T ∗

oder von der Form X → wY mit w ∈ T ∗ und X ,Y ∈ N .

also auf jeder rechten Seitehöchstens ein Nichterminalsymbolund wenn dann nur als letztes Symbol

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 32 / 49

Page 47: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Rechtslineare Grammatiken: BeispieleG = ({X }, {a,b},X , {X → abX | bbaX | ε }

L(G ) = 〈(ab|bba)*〉

G = ({X ,Y }, {a,b},X ,{X → aX | bX | ababbY ,Y → aY | bY | ε }

L(G ) = 〈(a|b)*ababb(a|b)*〉

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 33 / 49

Page 48: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Rechtslineare Grammatiken: BeispieleG = ({X }, {a,b},X , {X → abX | bbaX | ε }

L(G ) = 〈(ab|bba)*〉

G = ({X ,Y }, {a,b},X ,{X → aX | bX | ababbY ,Y → aY | bY | ε }

L(G ) = 〈(a|b)*ababb(a|b)*〉

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 33 / 49

Page 49: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Rechtslineare Grammatiken: BeispieleG = ({X }, {a,b},X , {X → abX | bbaX | ε }

L(G ) = 〈(ab|bba)*〉

G = ({X ,Y }, {a,b},X ,{X → aX | bX | ababbY ,Y → aY | bY | ε }

L(G ) = 〈(a|b)*ababb(a|b)*〉

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 33 / 49

Page 50: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Rechtslineare Grammatiken: BeispieleG = ({X }, {a,b},X , {X → abX | bbaX | ε }

L(G ) = 〈(ab|bba)*〉

G = ({X ,Y }, {a,b},X ,{X → aX | bX | ababbY ,Y → aY | bY | ε }

L(G ) = 〈(a|b)*ababb(a|b)*〉

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 33 / 49

Page 51: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Rechtslineare Grammatiken: NichtbeispielG = ({X }, {a,b},X , {X → aXb | ε }) ist nicht rechtslinear,

denn in X → aXb steht das Nich�erminalsymbol X nicht amrechten Ende.

Da die erzeugte formale Sprache {akbk | k ∈ N0} vonkeinem endlichen Akzeptor erkannt wird,kann es auch gar keine rechtslineare Grammatik geben.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 34 / 49

Page 52: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

SprechweisenRechtslineare Grammatiken heißen auchTyp-3-Grammatiken.

Kontextfreien Grammatiken heißen auchTyp-2-Grammatiken.

Es gibt auch nochTyp-1-Grammatiken undTyp-0-Grammatiken,

die wir hier nicht weiter betrachten werden.

Wenn für ein i ∈ {0, 1, 2, 3} eine formale Sprache L von einerTyp-i-Grammatik erzeugt wird, dann sagt man auch, L seieine Typ-i-Sprache oder kurz vom Typ i .

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 35 / 49

Page 53: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

SprechweisenRechtslineare Grammatiken heißen auchTyp-3-Grammatiken.

Kontextfreien Grammatiken heißen auchTyp-2-Grammatiken.

Es gibt auch nochTyp-1-Grammatiken undTyp-0-Grammatiken,

die wir hier nicht weiter betrachten werden.

Wenn für ein i ∈ {0, 1, 2, 3} eine formale Sprache L von einerTyp-i-Grammatik erzeugt wird, dann sagt man auch, L seieine Typ-i-Sprache oder kurz vom Typ i .

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 35 / 49

Page 54: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

SprechweisenRechtslineare Grammatiken heißen auchTyp-3-Grammatiken.

Kontextfreien Grammatiken heißen auchTyp-2-Grammatiken.

Es gibt auch nochTyp-1-Grammatiken undTyp-0-Grammatiken,

die wir hier nicht weiter betrachten werden.

Wenn für ein i ∈ {0, 1, 2, 3} eine formale Sprache L von einerTyp-i-Grammatik erzeugt wird, dann sagt man auch, L seieine Typ-i-Sprache oder kurz vom Typ i .

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 35 / 49

Page 55: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

SprechweisenRechtslineare Grammatiken heißen auchTyp-3-Grammatiken.

Kontextfreien Grammatiken heißen auchTyp-2-Grammatiken.

Es gibt auch nochTyp-1-Grammatiken undTyp-0-Grammatiken,

die wir hier nicht weiter betrachten werden.

Wenn für ein i ∈ {0, 1, 2, 3} eine formale Sprache L von einerTyp-i-Grammatik erzeugt wird, dann sagt man auch, L seieine Typ-i-Sprache oder kurz vom Typ i .

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 35 / 49

Page 56: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Vorteil rechtslinearer GrammatikenWozu rechtslineare Grammatiken?

gegenüber deterministischen endlichen Akzeptoren:manchmal deutlich kürzer und übersichtlicherhinzuschreiben

genaueres Verständnis dafür: im 3. Semester beinichtdeterministischen endliche Akzeptoren

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 36 / 49

Page 57: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Vorteil rechtslinearer GrammatikenWozu rechtslineare Grammatiken?

gegenüber deterministischen endlichen Akzeptoren:manchmal deutlich kürzer und übersichtlicherhinzuschreiben

genaueres Verständnis dafür: im 3. Semester beinichtdeterministischen endliche Akzeptoren

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 36 / 49

Page 58: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Wo sind wir?

Reguläre Ausdrücke

Rechtslineare Grammatiken (Typ 3)

Kantorowitsch-Bäume und strukturelle Induktion

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 37 / 49

Page 59: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Ziel dieses Abschni�esBeweisskizze für das folgendeLemma.Zu jedem regulären Ausdruck R gibt es eine rechtslineareGrammatik G mit L(G ) = 〈R〉.

Wie beweist man, dass eine Aussage für alle regulärenAusdrücke gilt?

eine Möglichkeit: strukturelle InduktionVariante/Verallgemeinerung vollständiger Induktion,ohne explizit über natürliche Zahlen zu sprechen

darauf arbeiten wir jetzt in mehreren Schri�en hin:Darstellung regulärer Ausdrücke mit Bäumeneine Variante „normaler vollständiger Induktion“strukturelle Induktion

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 38 / 49

Page 60: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Mit Kantorowitsch-Bäumen kann man z. B.reguläre Ausdrücke repräsentieren

.

.

|

b O/

a

*

b

regulärer Ausdruck: ((b|O/)a)(b*)

Darstellung als sogenannterKantorowitsch-Baum

innere Knoten: «Operatoren»Blä�er: «Operanden»

«Regex-Bäume»

Beachte:das ist kein Ableitungsbaumgemäß einer Grammatikaber «genauso gut» und kompakter

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 39 / 49

Page 61: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Regex-Bäume — etwas genauer

O/ a

*

|

Es sei A Alphabet.

Ein Baum ist ein Regex-Baum, wenn gilt:entweder Wurzel ist Bla�, mit x ∈ A oder O/ beschri�et,oder Wurzel mit * beschri�et und hatgenau einen Nachfolger, der Wurzel eines Regex-Baumes istoder Wurzel mit · oder | beschri�et und hatgenau zwei Nachfolger, die Wurzeln zweier Regex-Bäume sind.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 40 / 49

Page 62: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Regex-Bäume — etwas genauer

O/ a

*

|

Es sei A Alphabet.

Ein Baum ist ein Regex-Baum, wenn gilt:entweder Wurzel ist Bla�, mit x ∈ A oder O/ beschri�et,oder Wurzel mit * beschri�et und hatgenau einen Nachfolger, der Wurzel eines Regex-Baumes istoder Wurzel mit · oder | beschri�et und hatgenau zwei Nachfolger, die Wurzeln zweier Regex-Bäume sind.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 40 / 49

Page 63: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Regex-Bäume — etwas genauer

O/ a

*

|

Es sei A Alphabet.

Ein Baum ist ein Regex-Baum, wenn gilt:entweder Wurzel ist Bla�, mit x ∈ A oder O/ beschri�et,oder Wurzel mit * beschri�et und hatgenau einen Nachfolger, der Wurzel eines Regex-Baumes istoder Wurzel mit · oder | beschri�et und hatgenau zwei Nachfolger, die Wurzeln zweier Regex-Bäume sind.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 40 / 49

Page 64: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Regex-Bäume — etwas genauer

O/ a

*

|

Es sei A Alphabet.

Ein Baum ist ein Regex-Baum, wenn gilt:entweder Wurzel ist Bla�, mit x ∈ A oder O/ beschri�et,oder Wurzel mit * beschri�et und hatgenau einen Nachfolger, der Wurzel eines Regex-Baumes istoder Wurzel mit · oder | beschri�et und hatgenau zwei Nachfolger, die Wurzeln zweier Regex-Bäume sind.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 40 / 49

Page 65: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Vollständige Induktion über die Baumhöhe

Größere Bäume sind „aus kleineren zusammengesetzt“,und zwar auf eindeutige Weise.

Bijektion Regex-Bäume↔ reguläre Ausdrücke

Höhe h(T ) eines Baumes

h(T ) =

0 falls die Wurzel Bla� ist

1 +maxi h(Ui ) falls die Ui alleUnterbäume von T sind

Beweis einer Aussage für alle regulären Ausdrücke:durch Beweis der Aussage für alle Regex-Bäume

Beweis einer Aussage für alle Regex-Bäume:vollständige Induktion über Höhe der Regex-Bäume

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 41 / 49

Page 66: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Vollständige Induktion über die Baumhöhe

Größere Bäume sind „aus kleineren zusammengesetzt“,und zwar auf eindeutige Weise.

Bijektion Regex-Bäume↔ reguläre Ausdrücke

Höhe h(T ) eines Baumes

h(T ) =

0 falls die Wurzel Bla� ist

1 +maxi h(Ui ) falls die Ui alleUnterbäume von T sind

Beweis einer Aussage für alle regulären Ausdrücke:durch Beweis der Aussage für alle Regex-Bäume

Beweis einer Aussage für alle Regex-Bäume:vollständige Induktion über Höhe der Regex-Bäume

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 41 / 49

Page 67: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Vollständige Induktion über die Baumhöhe — einProblem

naive Vorgehensweise:beim Schri� zu Bäumen der Höhe n + 1Induktionsvoraussetzung nur für Bäume der Höhe n

aber:die Unterbäume eines Baumes der Höhe n + 1 könnenbeliebige Höhen i ≤ n haben.

anschaulich: man darf auch für die kleineren Unterbäumeso etwas wie die Induktionsvoraussetzung benutzen.

präzise: siehe Kapitel 6

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 42 / 49

Page 68: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Erinnerung: Verallgemeinerung vollständiger InduktionEs sei B (n) eine Aussage, die von einer Zahl n ∈ N0 abhängt.

wollen beweisen: ∀n ∈ N0 : B (n)

definiere Aussage A (n) als ∀i ≤ n : B (i ).

beweise durch vollständige Induktion: ∀n ∈ N0 : A (n)

das reicht, denn aus A (n) folgt B (n)

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 43 / 49

Page 69: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Induktion über Höhe der Regex-BäumeAussage B (n):

Für jeden Regex-Baum R der Höhe n gibt es einerechtslineare Grammatik G gibt mit 〈R〉 = L(G ).

Induktionsanfang: zeige B (0):finde T3G, die {x } = 〈x〉 für x ∈ A und {} = 〈O/〉 erzeugen.

Induktionsschri�: n ; n + 1: es sei n ∈ N0 so, dass dieInduktionsvoraussetzung gilt: ∀i ≤ n : B (i ),d. h. für jeden Regex-Baum R′ der Höhe i ≤ ngibt es eine T3G G mit 〈R′〉 = L(G ).

zeige: B (n + 1) giltd. h. für jeden Regex-Baum R der Höhe n + 1existiert T3G G mit 〈R〉 = L(G ).

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 44 / 49

Page 70: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Induktion über Höhe der Regex-BäumeAussage B (n):

Für jeden Regex-Baum R der Höhe n gibt es einerechtslineare Grammatik G gibt mit 〈R〉 = L(G ).

Induktionsanfang: zeige B (0):finde T3G, die {x } = 〈x〉 für x ∈ A und {} = 〈O/〉 erzeugen.Induktionsschri�: n ; n + 1: es sei n ∈ N0 so, dass die

Induktionsvoraussetzung gilt: ∀i ≤ n : B (i ),

d. h. für jeden Regex-Baum R′ der Höhe i ≤ ngibt es eine T3G G mit 〈R′〉 = L(G ).

zeige: B (n + 1) giltd. h. für jeden Regex-Baum R der Höhe n + 1existiert T3G G mit 〈R〉 = L(G ).

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 44 / 49

Page 71: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Induktion über Höhe der Regex-BäumeAussage B (n):

Für jeden Regex-Baum R der Höhe n gibt es einerechtslineare Grammatik G gibt mit 〈R〉 = L(G ).

Induktionsanfang: zeige B (0):finde T3G, die {x } = 〈x〉 für x ∈ A und {} = 〈O/〉 erzeugen.Induktionsschri�: n ; n + 1: es sei n ∈ N0 so, dass die

Induktionsvoraussetzung gilt: ∀i ≤ n : B (i ),d. h. für jeden Regex-Baum R′ der Höhe i ≤ ngibt es eine T3G G mit 〈R′〉 = L(G ).

zeige: B (n + 1) giltd. h. für jeden Regex-Baum R der Höhe n + 1existiert T3G G mit 〈R〉 = L(G ).

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 44 / 49

Page 72: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Induktion über Höhe der Regex-BäumeAussage B (n):

Für jeden Regex-Baum R der Höhe n gibt es einerechtslineare Grammatik G gibt mit 〈R〉 = L(G ).

Induktionsanfang: zeige B (0):finde T3G, die {x } = 〈x〉 für x ∈ A und {} = 〈O/〉 erzeugen.Induktionsschri�: n ; n + 1: es sei n ∈ N0 so, dass die

Induktionsvoraussetzung gilt: ∀i ≤ n : B (i ),d. h. für jeden Regex-Baum R′ der Höhe i ≤ ngibt es eine T3G G mit 〈R′〉 = L(G ).

zeige: B (n + 1) gilt

d. h. für jeden Regex-Baum R der Höhe n + 1existiert T3G G mit 〈R〉 = L(G ).

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 44 / 49

Page 73: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Induktion über Höhe der Regex-BäumeAussage B (n):

Für jeden Regex-Baum R der Höhe n gibt es einerechtslineare Grammatik G gibt mit 〈R〉 = L(G ).

Induktionsanfang: zeige B (0):finde T3G, die {x } = 〈x〉 für x ∈ A und {} = 〈O/〉 erzeugen.Induktionsschri�: n ; n + 1: es sei n ∈ N0 so, dass die

Induktionsvoraussetzung gilt: ∀i ≤ n : B (i ),d. h. für jeden Regex-Baum R′ der Höhe i ≤ ngibt es eine T3G G mit 〈R′〉 = L(G ).

zeige: B (n + 1) giltd. h. für jeden Regex-Baum R der Höhe n + 1existiert T3G G mit 〈R〉 = L(G ).

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 44 / 49

Page 74: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Skizze des Induktionsschri�s (1)sei R beliebiger Regex-Baum der Höhe n + 1:

*

R′

.

R′1 R′2

|

R′1R′2

Induktionsvoraussetzung: für alle Unterbäume gibt es T3G

Aus T3G für Unterbäume kann man T3G für ganzenRegex-Baum konstruieren.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 45 / 49

Page 75: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Skizze des Induktionsschri�s (1)sei R beliebiger Regex-Baum der Höhe n + 1:

*

R′

.

R′1 R′2

|

R′1R′2

Induktionsvoraussetzung: für alle Unterbäume gibt es T3G

Aus T3G für Unterbäume kann man T3G für ganzenRegex-Baum konstruieren.

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 45 / 49

Page 76: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Skizze des Induktionsschri�s (2)Beispiel: R ist R1|R2

nach Induktionsvoraussetzung gibt es T3GG1 = (N1,A, S1, P1) und G2 = (N2,A, S2, P2) mitL(G1) = 〈R1〉 bzw. L(G2) = 〈R2〉

es sei N1 ∩ N2 = ∅

keine Beschränkung der Allgemeinheitwichtig für die Konstruktion

wähle „neues“ Nich�erminalsymbol S < N1 ∪ N2

Behauptung:G = ({S } ∪ N1 ∪ N2,A, S, {S → S1 | S2} ∪ P1 ∪ P2)

ist T3G mit L(G ) = 〈R1|R2〉

Rechtslinearität: klarL(G ) = L(G1) ∪ L(G2): macht Arbeit, aber nicht hier

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 46 / 49

Page 77: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Skizze des Induktionsschri�s (2)Beispiel: R ist R1|R2

nach Induktionsvoraussetzung gibt es T3GG1 = (N1,A, S1, P1) und G2 = (N2,A, S2, P2) mitL(G1) = 〈R1〉 bzw. L(G2) = 〈R2〉

es sei N1 ∩ N2 = ∅

keine Beschränkung der Allgemeinheitwichtig für die Konstruktion

wähle „neues“ Nich�erminalsymbol S < N1 ∪ N2

Behauptung:G = ({S } ∪ N1 ∪ N2,A, S, {S → S1 | S2} ∪ P1 ∪ P2)

ist T3G mit L(G ) = 〈R1|R2〉

Rechtslinearität: klarL(G ) = L(G1) ∪ L(G2): macht Arbeit, aber nicht hier

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 46 / 49

Page 78: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Skizze des Induktionsschri�s (2)Beispiel: R ist R1|R2

nach Induktionsvoraussetzung gibt es T3GG1 = (N1,A, S1, P1) und G2 = (N2,A, S2, P2) mitL(G1) = 〈R1〉 bzw. L(G2) = 〈R2〉

es sei N1 ∩ N2 = ∅

keine Beschränkung der Allgemeinheitwichtig für die Konstruktion

wähle „neues“ Nich�erminalsymbol S < N1 ∪ N2

Behauptung:G = ({S } ∪ N1 ∪ N2,A, S, {S → S1 | S2} ∪ P1 ∪ P2)

ist T3G mit L(G ) = 〈R1|R2〉

Rechtslinearität: klarL(G ) = L(G1) ∪ L(G2): macht Arbeit, aber nicht hier

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 46 / 49

Page 79: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Skizze des Induktionsschri�s (2)Beispiel: R ist R1|R2

nach Induktionsvoraussetzung gibt es T3GG1 = (N1,A, S1, P1) und G2 = (N2,A, S2, P2) mitL(G1) = 〈R1〉 bzw. L(G2) = 〈R2〉

es sei N1 ∩ N2 = ∅

keine Beschränkung der Allgemeinheitwichtig für die Konstruktion

wähle „neues“ Nich�erminalsymbol S < N1 ∪ N2

Behauptung:G = ({S } ∪ N1 ∪ N2,A, S, {S → S1 | S2} ∪ P1 ∪ P2)

ist T3G mit L(G ) = 〈R1|R2〉

Rechtslinearität: klarL(G ) = L(G1) ∪ L(G2): macht Arbeit, aber nicht hier

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 46 / 49

Page 80: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Strukturelle Induktiongegeben «Gebilde» (eben reguläre Ausdrücke), und zwar

kleinste «atomare»/«elementare» Gebildebei RA: O/ und x für x ∈ A

Konstruktionsvorschri�(en), nach denen man aus kleinerenGebilden größere bauen kann

bei RA: R*, R1|R2, R1 · R2

Aufgabe:Zeige, dass alle Gebilde eine gewisse Eigenscha� haben.Strukturelle Induktion:

Induktionsanfang: zeige:alle «atomaren» Gebilde haben die Eigenscha�Induktionsschri�: zeige:«zusammengesetzten» Gebilde haben die Eigenscha�,weil alle Untergebilde die Eigenscha� haben

gleich welche Konstruktionsvorschri� benutzt wurde

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 47 / 49

Page 81: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Strukturelle Induktiongegeben «Gebilde» (eben reguläre Ausdrücke), und zwar

kleinste «atomare»/«elementare» Gebildebei RA: O/ und x für x ∈ A

Konstruktionsvorschri�(en), nach denen man aus kleinerenGebilden größere bauen kann

bei RA: R*, R1|R2, R1 · R2

Aufgabe:Zeige, dass alle Gebilde eine gewisse Eigenscha� haben.Strukturelle Induktion:

Induktionsanfang: zeige:alle «atomaren» Gebilde haben die Eigenscha�

Induktionsschri�: zeige:«zusammengesetzten» Gebilde haben die Eigenscha�,weil alle Untergebilde die Eigenscha� haben

gleich welche Konstruktionsvorschri� benutzt wurde

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 47 / 49

Page 82: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Strukturelle Induktiongegeben «Gebilde» (eben reguläre Ausdrücke), und zwar

kleinste «atomare»/«elementare» Gebildebei RA: O/ und x für x ∈ A

Konstruktionsvorschri�(en), nach denen man aus kleinerenGebilden größere bauen kann

bei RA: R*, R1|R2, R1 · R2

Aufgabe:Zeige, dass alle Gebilde eine gewisse Eigenscha� haben.Strukturelle Induktion:

Induktionsanfang: zeige:alle «atomaren» Gebilde haben die Eigenscha�Induktionsschri�: zeige:«zusammengesetzten» Gebilde haben die Eigenscha�,weil alle Untergebilde die Eigenscha� haben

gleich welche Konstruktionsvorschri� benutzt wurde

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 47 / 49

Page 83: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Was ist wichtigDas sollten Sie mitnehmen:

Definition rechtslineare Grammatiken

Das sollten Sie üben:rechtslineare Grammatiken konstruieren(zu gegebenem Akzeptor, regulären Ausdruck,formaler Sprache)strukturelle Induktion

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 48 / 49

Page 84: Grundbegriffe der Informatik - gbi.ira.uka.degbi.ira.uka.de/vorlesungen/k-19-reg-ausdruecke-folien.pdf · GBI — Grundbegri˙e der InformatikKIT, Institut für Theoretische Informatik19/49

Zusammenfassungreguläre Ausdrücke

werden von diversen «Werkzeugen» unterstütztin manchen Programmiersprachen zur Textverarbeitungpraktisch

rechtslineare Grammatiken

strukturelle Induktion

GBI — Grundbegri�e der Informatik KIT, Institut für Theoretische Informatik 49 / 49