Theoretische Informatik: Automaten und formale Sprachen

Theoretische Informatik: Automaten und formale Sprachen Prof. Dr. Sibylle Schwarz HTWK Leipzig, Fakult¨at IMN Gustav-Freytag-Str. 42a, 04277 Leipzig Z...
Author: Nikolas Boer
10 downloads 0 Views 745KB Size
Theoretische Informatik: Automaten und formale Sprachen Prof. Dr. Sibylle Schwarz HTWK Leipzig, Fakult¨at IMN Gustav-Freytag-Str. 42a, 04277 Leipzig Zimmer Z 411 (Zuse-Bau) http://www.imn.htwk-leipzig.de/~schwarz [email protected]

Wintersemester 2016/17

1

Einordnung der Theoretischen Informatik Informatik Lehre von der Darstellung und Verarbeitung von Information durch Algorithmen Teilgebiete der Informatik: theoretisch

technisch

Sprachen zur Formulierung von Information und Algorithmen, I M¨ oglichkeiten und Grenzen der maschinellen Berechenbarkeit, I Grundlagen f¨ ur technische und praktische (und angewandte) Informatik I

maschinelle Darstellung von Information Mittel zur Ausf¨ uhrung von Algorithmen (Rechnerarchitektur, Hardware-Entwurf, Netzwerk, . . . ) I I

praktisch Entwurf und Implementierung von Algorithmen (Betriebssysteme, Compilerbau, SE, . . . ) angewandt Anwendung von Algorithmen (Text- und Bildverarbeitung, Datenbanken, KI, Medizin-, Bio-, Wirtschafts-, Medieninformatik, . . . ) 2

Anwendungen der theoretischen Informatik Formale Sprachen Repr¨asentation von Informationen und Aufgaben in maschinenlesbarer Form (Mensch-Maschine-Kommunikation) I Ausdrucksst¨ arke und Flexibilit¨at von Programmiersprachen ¨ I Ubersetzung von Programmiersprachen (z.B. in ausf¨ uhrbaren Code) I

Maschinenmodelle (Automaten) I

M¨ oglichkeiten und Grenzen verschiedener Modelle zur (maschinellen) Ausf¨ uhrung von Algorithmen

Berechenbarkeitstheorie (hier Ausblick, mehr dazu im Mastermodul) I

Welche Probleme sind u ¨berhaupt algorithmisch (mit Hilfe verschiedener Maschinenmodelle) l¨ osbar? Auch negative Antworten sind sehr hilfreich (sparen Aufwand f¨ ur ungeeignete L¨ osungsans¨atze)

Komplexit¨atstheorie (hier Ausblick, mehr dazu im Mastermodul) Welche Probleme sind mit beschr¨ankten Ressourcen (z.B. Zeit, Speicherplatz) l¨ osbar? I F¨ ur welche Probleme k¨ onnen schnelle Algorithmen existieren? I

3

Prinzipien der theoretischen Informatik ¨altester Zweig der Informatik (lange vor dem ersten Computer) Mathematische Prinzipien: I Abstraktion I

I

I

erm¨ oglicht verallgemeinerte Aussagen und breit einsetzbare Verfahren, Ergebnisse und Verfahren oft nicht sofort praktisch anwendbar, m¨ ussen auf spezielle Situationen angepasst werden.

Beweisbarkeit I I

erfordert pr¨azise Modellierung des Problems Nachweis der Korrektheit von Hard- und Software (Tests k¨ onnen dies nicht !)

Wissen aus der theoretischen Informatik I I

veraltet u ¨ber viele Jahre kaum Grundlage f¨ ur Verst¨andnis von (schnelllebigem) Spezialwissen, z.B. konkrete Programmiersprachen, Domain-spezifische Sprachen, Transformationen verschiedener Darstellungen 4

Aus der Modulbeschreibung 3010 Theoretische Informatik: Automaten und formale Sprachen ¨ je Woche) Arbeitsaufwand: Pr¨asenzzeit 60 h (= 2 h V + 2 h U Vor- und Nachbereitungszeit 90 h (≈ 6 h je Woche) Voraussetzungen: anwendungsbereite Kenntnisse auf den Gebieten Modellierung, Logik, Algorithmen und Datenstrukturen, Aufwandsabsch¨atzungen Lernziele: Die Studierenden sind in der Lage, wichtige Klassen formaler Sprachen als Grundlage von Programmierund Beschreibungssprachen einzuordnen und kennen die wesentlichen Eigenschaften der Sprachklassen. Sie kennen die entsprechenden abstrakten Maschinenmodelle und Algorithmen und k¨onnen sie zur Darstellung und L¨ osung praktischer Aufgabenstellungen einsetzen. Die Studierenden wissen, dass nicht jedes formal darstellbare Problem algorithmisch l¨osbar ist. 5

Inhalt der Lehrveranstaltung I

Formale Sprachen I I I I

I

Maschinenmodelle I I I

I

Endliche Automaten Kellerautomaten Turing-Maschinen

Berechenbarkeit (Ausblick auf Master-Modul) I I I I

I

Wiederholung: Alphabet, Wort, Sprache, Operationen darauf regul¨are Ausdr¨ ucke Wiederholung: Wortersetzung Grammatiken, Chomsky-Hierarchie

berechenbare Funktionen Berechnungsmodelle These von Church algorithmische Entscheidbarkeit / Unentscheidbarkeit

Komplexit¨at (Ausblick auf Master-Modul) I I

Komplexit¨atsmaße Komplexit¨atsklassen P, NP, PSPACE

jeweils mit vielen Beispielen 6

Literatur I I

I I I I I

I

Uwe Sch¨ oning: Theoretische Informatik - kurzgefasst (Spektrum 2001) John E. Hopcroft, Jeffrey D. Ullman: Einf¨ uhrung in die Automatentheorie, Formale Sprachen und Komplexit¨atstheorie (Addison-Wesley 1990) Dirk W. Hoffmann: Theoretische Informatik (Hanser 2009) Rolf Socher: Theoretische Grundlagen der Informatik (Hanser 2008) Ulrich Hedtst¨ uck: Einf¨ uhrung in die Theoretische Informatik (Oldenbourg 2007) Gottfried Vossen, Kurt-Ulrich Witt: Grundkurs Theoretische Informatik (Vieweg 2006) Alexander Asteroth, Christel Baier: Theoretische Informatik. Eine Einf¨ uhrung in Berechenbarkeit, Komplexit¨at und formale Sprachen (Pearson 2002) Renate Winter: Theoretische Informatik (Oldenbourg 2002) 7

Lehrveranstaltungen ¨ Folien, Ubungsserien, aktuelle Informationen unter www.imn.htwk-leipzig.de/~schwarz/lehre/ws16/ti Vorlesung

(2 h / Woche)

Selbststudium (Hausaufgaben): (6 h / Woche) ¨ schriftliche Ubungsserien (ca. zu jeder Vorlesung) ¨ Besprechung in der folgenden Ubung Autotool jeweils nach der Vorlesung (ca. eine Woche Bearbeitungszeit) ¨ Ubung (2 Gruppen) (2 h / Woche) alle Folien, Aufgaben, L¨ osungen mitbringen ! ¨ I Besprechung der Ubungsserien (Vorrechnen), I Fragen zum aktuellen Vorlesungsinhalt

8

Pr¨ufung

Pr¨ ufungsvorleistungen: I ≥ 50% aller Punkte f¨ ur Autotool-Pflichtaufgaben und ¨ I ≥ 3 Vorrechen-Punkte (Ubungen) Pr¨ ufung: Klausur 90 min ¨ Aufgabentypen ¨ahnlich Ubungsaufgaben (Hilfsmittel: beidseiting handbeschriebenes A4-Blatt)

9

Formale Sprachen Syntax nat¨ urlicher Sprachen: I

Rechtschreibung: korrekte W¨ orter

I

Grammatik: Aufbau korrekter S¨atze

Definition von Programmiersprachen: Syntax Form der Sprachelemente Semantik Bedeutung der Sprachelemente und -strukturen Pragmatik Regeln zur zweckm¨aßigen Anwendung Syntax von Programmiersprachen: I

Schl¨ usselw¨orter, Bezeichner, Darstellung von Zahlen, . . .

I

Programmstrukturen: Form der Ausdr¨ ucke, Anweisungen, Deklarationen, . . . 10

Formale Sprachen: Beispiele Programmiersprachen (Java): while (b != 0) { if (a > b) a = a - b; else b = b - a; } Regeln f¨ ur korrekte Syntax (EBNF): Statement WhileStmt IfStmt Expr

::= ... | IfStmt | WhileStmt | ... ; ::= "while" "(" Expr ")" Statement; ::= "if" "(" Expr ")" Statement ( "else" Statement )?; ::= ...

Domain-spezifische Sprachen , z.B. Autotool-L¨ osungen zu AL-Modell listToFM[(x,True),(y,False),(z,False)] Regeln f¨ ur korrekte Syntax (EBNF): belegung var-wert-ps var-wert-paar wert var-name

::= ::= ::= ::= ::=

"listToFM" "[" var-wert-paare "]" "" | var-wert-paar | var-wert-paar "," var-wert-ps "(" var-name, wert ")" "True" | "False" ...

Graphische Sprachen , z.B.

11

Maschinenmodell: endlicher Automat Beschreibung des dynamischen Verhaltens von Systemen

Modellierung von Abl¨aufen (Zustands¨ ubergangssysteme)

Beispiele: I

Bedienoperationen an Ger¨aten oder Software

I

Schaltfolgen von Ampelanlagen

I

Steuerung von Produktionsanlagen

I

Ablauf von (Gesch¨afts-)Prozessen

12

Beispiel: (Pool-)Einlass mit Karte Automat definiert durch I

Zust¨ande: gesperrt, frei

I

Startzustand: gesperrt

I

Aktionen (Eingabesymbole): Karte (anlegen), Durchgehen, Timeout

I

Zustands¨ uberg¨ange(gesperrt, Karte) → frei (frei, Karte) → frei (frei, Durchgehen) → gesperrt (frei, Timeout) → gesperrt

definiert m¨ogliche (erlaubte) Folgen von Aktionen Diese Folgen lassen sich durch regul¨are Ausdr¨ ucke darstellen: ( Karte Karte∗ ( Durchgehen + Timeout ))∗ 13

¨ Anwendung bei der Ubersetzung von Programmen ¨ Ubersetzung von Quell- in Zielsprache (z.B. C, Java in Maschinen- oder Byte-Code)

meist in zwei Phasen u ¨ber eine (gemeinsame) Abstraktion:

Quellcode ↓ Zwischendarstellung (oft Baumstruktur) ↓ Code in Zielsprache

Analyse-Phase (Front-End)

Synthese-Phase (Back-End)

14

Analyse-Phase Quellcode

Scanner

Folge von Token

Parser

Syntaxbaum

lexikalische Analyse (Scanner) lineare Analyse des Quelltextes, Aufteilung in Einheiten (Token) z.B. Schl¨ usselw¨ orter, Bezeichner, Zahlen regul¨are Sprachen, endliche Automaten Syntaxnalyse (Parser) hierarchische Struktur des Quelltextes z.B. Ausdr¨ ucke, Verzweigungen, Schleifen kontextfreie Sprachen, Kellerautomaten semantische Analyse Annotationen im Syntaxbaum, z.B. Typpr¨ ufungen

15

Einsatz ¨ahnlicher Transformations- und Analyse-Methoden I I I

Compiler f¨ ur Programmiersprachen (z. B. Java → Bytecode) Interpreter f¨ ur Programmiersprachen (z. B. Java-Bytecode) ¨ Ubersetzung von Daten zwischen verschiedenen Formaten z. B. LilyPond (http://www.lilypond.org) u ¨bersetzt \repeat volta 3 { c’ e’ g’ e’ | } \alternative { { c’2 g’ | } { g’1 | } }

u. A. in

volta-cropped.pdf

16

Berechenbarkeit / Entscheidbarkeit Halteproblem: Kann ein (Test-)programm U existieren, welches f¨ ur jedes beliebige (Dienst-)Programm P (Eingabe als Quelltext) entscheidet, ob P nach endlich vielen Schritten anh¨alt? Nein Folgerungen: I

Alle Versuche, ein solches Programm zu schreiben, m¨ ussen fehlschlagen.

I

Suche nach Verfahren, die f¨ ur eine m¨ oglichst große Teilmenge aller (Dienst-)Programme P entscheiden, ob P nach endlich vielen Schritten anh¨alt, ist sinnvoller.

I

Entwickler von P (Dienstleister) muss nachweisen, dass sein Programm P nach endlich vielen Schritten anh¨alt 17

Komplexit¨at Beispiel Primzahltest Problem: Ist eine gegebene Zahl n eine Primzahl? Instanz des Problems: Ist 12347 eine Primzahl? l¨osbar durch den Algorithmus: 1. F¨ ur alle i ∈ {2, . . . , n}: Test: Ist n durch i teilbar? I I

ja: Ende mit Ausgabe n ist nicht prim. nein: weiter (mit Test f¨ ur i + 1)

2. Ausgabe: n ist prim. Test ist f¨ ur große Zahlen aufwendig. Geht es besser? I

Was bedeutet aufwendig und besser?

I

Wie aufwendig ist eine Berechnung?

I

Wie aufwendig ist die L¨ osung eines Problemes? 18

Wiederholung: Alphabet, Wort, Sprache F¨ ur jede Menge A heißt An = A · · × A} = {w1 · · · wn | ∀i : wi ∈ A} | × ·{z n

Menge aller W¨ orter der L¨ange n u ¨ber A (n-Tupel, Vektoren, Folgen, Listen, Zeichenketten) S A∗ = {n∈N} An Menge aller W¨orter u ¨ber A (endliche Folgen, Listen, Zeichenketten) A0 = {ε}

mit leerem Wort ε

Alphabet (endliche) Menge A von Symbolen Wort endliche Folge von Symbolen w = w1 · · · wn mit ∀i ∈ {1, . . . , n} : wi ∈ A L¨ange eines Wortes |w | = Anzahl der Symbole in w Anzahl der Vorkommen eines Symboles in einem Wort |w |a = Anzahl der a in w (f¨ ur a ∈ A) Sprache Menge von W¨ ortern L ⊆ A∗ 19

Beispiele I

Alphabet A = {0, 1} W¨orter ∈ A∗ = {0, 1}∗ : Menge aller Bin¨arw¨orter Sprachen ⊆ A∗ , z.B. I

I

I

{w ∈ {0, 1}∗ | w1 6= 0} Menge aller Bin¨arzahlen ohne f¨ uhrende Nullen {w ∈ {0, 1}∗ | w1 6= 0 ∧ w|w |−1 = w|w | = 0} Menge aller Bin¨ardarstellungen durch 4 teilbarer Zahlen ohne f¨ uhrende Nullen

Alphabet A = {a, b} W¨orter ∈ A∗ = {a, b}∗ : Menge aller W¨orter, die h¨ochstens die Buchstaben a und b enthalten Sprachen ⊆ A∗ , z.B. I I I I

∅ {a, b} {a}∗ = {ε, a, aa, aaa, . . .} {w ∈ {a, b}∗ | w1 = a ∧ w|w | = a} = {a, aa, aaa, aba, aaaa, abaa, aaba, abba, . . .} 20

Beispiele f¨ur Sprachen I

Menge aller englischen W¨ orter L1 ⊂ {a, . . . , z}∗

I

Menge aller deutschen W¨ orter L2 ⊂ {a, . . . , z, ß,¨a,¨o,¨ u}∗

I

Menge aller m¨ oglichen DNA L3 ⊆ {A, T , G , C }∗

I

Menge aller nat¨ urlichen Zahlen in Dezimaldarstellung L4 ⊆ {0, . . . , 9}∗ (evtl. mit f¨ uhrenden Nullen)

I

Menge aller nat¨ urlichen Zahlen in Bin¨ardarstellung (Bitfolgen beliebiger L¨ange) L5 ⊆ {0, 1}∗

I

Menge aller aussagenlogischen Formeln in AL({p, q, r }) L6 ⊆ {p, q, r , t, f, ¬, ∨, ∧, →, ↔, (, )}∗ ,

I

Menge aller arithmetischen Ausdr¨ ucke u ¨ber L7 ⊂ {0, . . . , 9, +, ·, −, /, (, )},

I

Menge aller deutschen S¨atze L8 ⊂ (L2 ∪ {., , , !, ?, (, ), −})

Z (ohne Variablen) ∗

Wie lassen sich unendliche Sprachen endlich darstellen? (Voraussetzung f¨ ur maschinelle Verarbeitung) verschiedene Darstellungen sp¨ater in dieser LV 21

Darstellung von W¨ortern extensional durch Angabe der Symbole in ihrer Reihenfolge Beispiele: u = 321, v = abababababa, w = w1 · · · w4 mit w1 = w2 = w3 = a, w4 = b intensional durch Angabe einer Eigenschaft, die f¨ ur jeden Index i das i-te Symbol eindeutig bestimmt. Beispiele: u ∈ {0, . . . , 4}3 mit ∀i ∈ {1, . . . , 3} : ui = 4 − i,  a falls i ∈ 2 + 1 11 v ∈ {a, b} mit ∀i ∈ {1, . . . , 11} : vi = b sonst

N

w ∈ {a, b}4 mit w4 = b ∧ ∀i ∈ {1, . . . , 3} : wi = a

22

Darstellung von Sprachen extensional durch Angabe der Elemente (nur Beschreibung endlicher Sprachen m¨oglich) Beispiele: {ε, a, aa, aaa}, {b, ba, baa, baaa}, {a, b, aa, bb, aaa, bbb} intensional durch Angabe einer Eigenschaft, die genau alle W¨orter der Sprache haben. (auch Beschreibung unendlicher Sprachen m¨oglich) Beispiele: {w ∈ {a}∗ | |w | ≤ 3}, {w ∈ {a, b}∗ | w1 = b ∧ ∀i ≥ 2 : wi = a}, {w ∈ {a, b}∗ | ∀i ≥ 2 : wi = w1 } sp¨ater in dieser LV noch mehr Formalismen zur endlichen Beschreibung von eingeschr¨ankten Sprachklassen (regul¨are Ausdr¨ ucke, Grammatiken, Automaten, . . . ) 23

Operationen auf W¨ortern Operationen auf W¨ortern u, v ∈ A∗ : Verkettung ◦ : A∗ × A∗ → A∗ , wobei ∀u ∈ A∗ ∀v ∈ A∗ ∀i ∈ {1, . . . , |u| + |v |} :  ui falls i ≤ |u| (u ◦ v )i = vi−|u| sonst Beispiel: anne ◦ marie = annemarie assoziativ, nicht kommutativ, ε ist neutral Damit ist (A∗ , ◦, ε) ein Monoid. Spiegelung R : A∗ → A∗ , wobei ∀u ∈ A∗ ∀i ∈ {1, . . . , |u|} : uiR = u|u|+1−i Beispiel: marie R = eiram, annaR = anna u ∈ A∗ heißt Palindrom gdw. u R = u

Fakt R

I

F¨ ur jedes Wort u ∈ A∗ gilt u R

I

F¨ ur je zwei beliebige W¨orter u, v ∈ A∗ gilt (u ◦ v )R = v R ◦ u R .

= u. 24

Anwendung: Java-Standardbibliothek Rotieren einer Liste in java.util.Collections:   x0 , . . . , xmid−1 , xmid , . . . , xsize  durch v ◦ u = (u R ◦ v R )R {z } | {z } | u

v

private static void rotate2(List list, int distance) { int size = list.size(); if (size == 0) return; int mid = -distance % size; if (mid < 0) mid += size; if (mid == 0) return; reverse(list.subList(0, mid)); reverse(list.subList(mid, size)); reverse(list); } 25

Relationen auf W¨ortern Pr¨afix v (Anfangswort): ∀u ∈ A∗ ∀v ∈ A∗ : ((u v v )



(∃w ∈ A∗ (u ◦ w = v )))

z.B. tom v tomate (mit w = ate) Postfix (Suffix): ∀u ∈ A∗ ∀v ∈ A∗ : (u Postfix von v



(∃w ∈ A∗ (w ◦ u = v )))

z.B. enten ist Postfix von studenten (mit w = stud) Infix (Faktor, zusammenh¨angendes Teilwort): ∀u ∈ A∗ ∀v ∈ A∗ : (u Infix von v ↔ (∃w ∈ A∗ ∃w 0 ∈ A∗ : (w ◦ u ◦ w 0 = v ))) z.B. oma ist Infix von tomate (mit w = t und w 0 = te)

26

Mehr Relationen auf W¨ortern Ordnungen bei gegebener Reihenfolge < auf dem Alphabet A: lexikographisch Ordnung auf A∗ : ∀u, v ∈ A∗ : u ≤lex v gdw. 1. u v v oder 2. ∃w ∈ A∗ ∃a, b ∈ A : a < b ∧ wa v u ∧ wb v v quasi-lexikographische Ordnung auf A∗ : ∀u, v ∈ A∗ : u ≤qlex v gdw. 1. |u| ≤ |v | oder 2. |u| = |v | ∧ u ≤lex v Beispiele: f¨ ur A = {a, b} mit a < b I

ab v aba, ab ≤lex aba, ab ≤qlex aba

I

abab 6v abba, aber abab ≤lex abba und abab ≤qlex abba,

I

aaa ≤lex ab, aber aaa 6≤qlex ab

I

ab 6≤lex aaba, aber ab ≤qlex aaba 27

Sprachen als Mengen Sprachen L ⊆ A∗ sind Mengen von W¨ ortern Eigenschaften: leer, endlich, abz¨ahlbar, u ¨berabz¨ahlbar Mengenrelationen auf Sprachen: L ⊆ L0

gdw.

∀w ∈ A∗ : w ∈ L → w ∈ L0 gilt

L = L0

gdw.

∀w ∈ A∗ : w ∈ L ↔ w ∈ L0 gilt

Mengenoperationen auf Sprachen: L ∪ L0

=

{w | w ∈ L ∨ w ∈ L0 }

0

L∩L

= {w | w ∈ L ∧ w ∈ L0 }

L \ L0

= {w | w ∈ L ∧ w 6∈ L0 }

L∆L0

=

(L \ L0 ) ∪ (L0 \ L)

Komplement einer Sprache L ⊆ A∗ : L = A∗ \ L Beispiel: [ [ L= An L= An ∪

N

n∈3

N

n∈{3i+1|i∈ }

[

N

An

n∈{3i+2|i∈ } 28

Weitere Operationen auf Sprachen Verkettung ◦ von Sprachen: L1 ◦ L2 = {u ◦ v | u ∈ L1 ∧ v ∈ L2 } Beispiel: L1 = {111, 1, 10} L2 = {00, 0} L1 ◦ L2 = {111, 1, 10} ◦ {00, 0} = {1110, 11100, 10, 100, 1000}

Spiegelung LR = {w R | w ∈ L} Beispiel: L = {a, ab, aba, abab} LR = {a, ba, aba, baba}

29

Iterierte Verkettung I

f¨ ur Sprachen L ⊆ A∗ L0 = {ε}

∀n ∈

N:

Ln+1 = Ln ◦ L = L · · ◦ L} | ◦ ·{z n+1−mal



L =

[ n∈

I

N

L

n

+

L =

[

N

n

L

n∈ \{0}

f¨ ur W¨ orter u ∈ A∗ : un u

+

∈ A∗ ,

= u · · u} | ·{z

u ∗ = {u}∗ = {u n | n ∈

n−mal ∗

= u \ {ε} = {u}+ = {u n | n ∈

N \ {0}}

N}

⊆ A∗

⊆ A∗

Beispiele: (101)3 a∗ ∗

(ab)

=

101101101

und

1013 = 10111

N} = {ε, a, aa, aaa, . . .} | i ∈ N} = {ε, ab, abab, ababab, . . .}

= {ai | i ∈ i

= {(ab)

30

Regul¨are Ausdr¨ucke – Syntax Die Menge RegExp(A) aller regul¨aren Ausdr¨ ucke u ¨ber einem Alphabet A ist (induktiv) definiert durch: IA ∅ ∈ RegExp(A), ε ∈ RegExp(A) und f¨ ur jedes Symbol a ∈ A gilt a ∈ RegExp(A) IS f¨ ur alle E ∈ RegExp(A) und F ∈ RegExp(A) gilt (E + F ), EF , (E )∗ ∈ RegExp(A). Beispiele: ε + a, ε + ∅, (a + ∅)∗ , ε + ((ab)∗ a)∗ dieselbe Definition k¨ urzer: RegExp(A) = Term(ΣF , ∅) f¨ ur die Signatur ΣF = {(∅, 0), (ε, 0), (∗ , 1), (+, 2), (·, 2)} ∪ {(a, 0) | a ∈ A} (Baumdarstellung) 31

Beispiele (ohne u ussige Klammern) ¨berfl¨ I F¨ ur A = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} gilt 0+(1+2+3+4+5+6+7+8+9)(0+1+2+3+4+5+6+7+8+9)∗ ∈ RegExp(A) I

F¨ ur A = {0, 1} gilt I I

(1 + ε)∗ + (10)∗ ∈ RegExp(A) (0 + 11)∗ + ((0 + (1)∗ )0)∗ ∈ RegExp(A)

Oft werden A E + = EE ∗ E n = |E ·{z · · E} n−mal

∗



E n∗ = |E ·{z · · E} n−mal

f¨ ur n ∈

N als Kurzbezeichnungen verwendet.

32

Regul¨are Ausdr¨ucke – Semantik Jeder regul¨are Ausdruck E ∈ RegExp(A) repr¨asentiert eine Sprache L(E ) ⊆ A∗ . L(∅) L(ε) ∀a ∈ A : L(a) ∀E , F ∈ RegExp(A) : L(E + F ) ∀E , F ∈ RegExp(A) : L(EF ) ∀E , F ∈ RegExp(A) : L(E ∗ )

= ∅ = {ε} = {a} = L(E ) ∪ L(F ) = L(E ) ◦ L(F ) ∗ = (L(E ))

Eine Sprache L ⊆ A∗ heißt genau dann regul¨ar, wenn ein regul¨arer Ausdruck E ∈ RegExp(A) mit L = L(E ) existiert. Beispiel: Die Menge L aller Dezimaldarstellungen nat¨ urlicher Zahlen ist regul¨ar wegen L = L (0 + (1 + 2 + · · · + 9)(0 + 1 + · · · + 9)∗ )

33

Beispiele F¨ ur A = {a, b} gilt

N} | i ∈ N}

L(ab ∗ ) = {a, ab, abb, abbb, abbbb, . . .} = {ab i | i ∈ ∗

i

L((ab) ) = {ε, ab, abab, ababab, . . .} = {(ab) L((a + b)∗ ) = {a, b}∗ L(a∗ b ∗ ) = {u ◦ v | u ∈ a∗ ∧ v ∈ b ∗ } L((a∗ b ∗ )∗ ) = {a, b}∗ L((a + b)∗ aba) = {u ◦ aba | u ∈ A∗ }∗

Regul¨are Ausdr¨ ucke erm¨ oglichen eine endliche Darstellung unendlicher Sprachen.

34

¨ Aquivalenz regul¨arer Ausdr¨ucke Zwei regul¨are Ausdr¨ ucke E , F ∈ RegExp(A) heißen genau dann ¨aquivalent, wenn L(E ) = L(F ) gilt.

Beispiele: I

(a + b)∗ , (a∗ + b ∗ )∗ und a∗ (ba∗ )∗ sind ¨aquivalent ab ∗ und (ab)∗ sind nicht ¨aquivalent

I

(11 + 0 + 110 + 011)∗ und (11 + 0)∗ sind . . .

I

Fakt ¨ ¨ Die Aquivalenz regul¨arer Ausdr¨ ucke ist eine Aquivalenzrelation.

35

Was bisher geschah Alphabet, Wort, Sprache W¨ orter w ∈ A∗ R

, Verkettung ◦

I

Operationen: Spiegelung

I

Palindrome

I

Relationen: Pr¨afix, Infix, Postfix, lexikographische, quasi-lexikographische Ordnung ∗

Sprachen L ⊆ A∗ (L ∈ 2(A ) ) I

Relationen: Mengenrelationen ⊆, =

I

Operationen: Mengenoperationen ∪, ∩, , \ Verkettung ◦, iterierte Verkettung ∗ , Spiegelung

R

Regul¨are Ausdr¨ ucke I

endliche Darstellung auch unendlicher Sprachen

I

Syntax: RegExp(A) = Term(ΣF , ∅) (Baumstruktur) f¨ ur ΣF = {(∅, 0), (ε, 0), ( ∗ , 1), (·, 2), (+, 2)} ∪ {(a, 0)|a ∈ A}

I

Semantik des regul¨aren Ausdrucks E ∈ RegExp(A): Sprache L(E ) ⊆ A∗ 36

Interessante Fragen f¨ur Sprachen Ist ein gegebenes Wort w in der Sprache L enthalten? (heißt oft Wortproblem) I Enth¨ alt die Sprache L nur endlich viele W¨ orter? I Gilt L1 ⊆ L2 f¨ ur zwei gegebene Sprachen L1 und L2 ? I Gilt L1 = L2 f¨ ur zwei gegebene Sprachen L1 und L2 ?

I

Fragen zur Regularit¨at: I I I I I

L¨asst sich die Sprache L durch einen regul¨aren Ausdruck definieren? (Gilt ∃E ∈ RegExp(A) : L = L(E ) ?) Woran erkennt man, ob sich eine Sprache durch einen regul¨aren Ausdruck definieren l¨asst? Gilt L(E ) = ∅ f¨ ur einen gegebenen regul¨aren Ausdruck E ? ∗ Gilt L(E ) = A f¨ ur einen gegebenen regul¨aren Ausdruck E ? Ist ein gegebenes Wort w in der durch den regul¨aren Ausdruck E definierten Sprache L(E ) enthalten?

Alle Antworten sind f¨ ur endliche Sprachen einfach, aber f¨ ur unendliche Sprachen meist schwierig. 37

Wortersetzungssysteme

Alphabet A Wortersetzungsregel (l, r ) ∈ A∗ × A∗ (geschrieben l → r ) Wortersetzungssystem endliche Menge von Wortersetzungsregeln

Beispiele: I

Regel ba → ab,

I

Wortersetzungssystem S = {a → ab, ba → c, abc → ε}

38

Anwendung von Wortersetzungsregeln Eine Regel l → r ist auf ein Wort w ∈ A∗ anwendbar, falls l ein Infix von w ist. Beispiel: Regel ma → ε ist I

auf tomate anwendbar, u = to, v = te,

I

auf am, motte und meta nicht anwendbar.

Eine Anwendung der Regel l → r auf ein Wort w = u ◦ l ◦ v ∈ ergibt das Wort u ◦ r ◦ v . (Ersetzung des Teilwortes l durch r ) Beispiel: ab → a angewendet auf baababa = u ◦ l ◦ v I

mit u = ba und v = aba ergibt baaaba

I

mit u = baab und v = a ergibt baabaa 39

Ableitungsschritt Ableitungsschritt (u, (l → r ), p, v ) im Wortersetzungssystem S mit I

Ausgangswort u,

I

auf u anwendbare Regel l → r aus S,

I

Position p ∈ {1, . . . , |u|} im Wort u, an der das Teilwort l beginnt

I

v ist das nach Anwendung der Regel l → r an Position p auf u entstandene Wort.

Beispiel: S = {ab → ba, a → b}, u = aba m¨ogliche Ableitungsschritte in S (aba, (ab → ba), 1, baa) (aba, (a → b), 3, abb) (aba, (a → b), 1, bba) 40

Ein-Schritt-Ableitungsrelation Jedes Wortersetzungssystem S ⊆ A∗ × A∗ definiert eine Relation →S ⊆ A∗ × A∗ , wobei genau dann u →S v gilt, wenn ein Ableitungsschritt (u, (l → r ), p, v ) mit (l → r ) ∈ S existiert.

Beispiel: F¨ ur S = {ab → ba, a → b} gilt I

aba →S baa wegen (aba, (ab → ba), 1, baa)

I

aba →S bba wegen (aba, (a → b), 1, bba)

I

aba →S abb wegen (aba, (a → b), 3, abb)

I

aba 6→S bbb

41

Ableitungen Eine Folge von Ableitungsschritten (u, (l1 → r1 ), p1 , u2 ), (u2 , (l2 → r2 ), p2 , u3 ), · · · , (un−1 , (ln−1 → rn−1 , pn−1 , v )

im Wortersetzungssystem S heißt Ableitung von u nach v in S. Beispiel: S = {ab → ba, a → b}, u = aba Folge von Ableitungsschritten (aba, (ab → ba), 1, baa), (baa, (a → b), 3, bab), (bab, (a → b), 2, bbb) ab→ba

a→b

a→b

aba −→ baa −→ bab −→ bbb

L¨ange der Ableitung = Anzahl der Ableitungsschritte In jedem System S existiert f¨ ur jedes u ∈ A∗ die leere Ableitung (der L¨ange 0) von u nach u. 42

Beispiele S1 = {||| → |} mit u = ||||||| und v = |||| Was wird hier berechnet“? ” Anderes Wortersetzungssystem mit derselben Wirkung?

S2 = {11 → 1, 00 → 1, 01 → 0, 10 → 0} und u = 1101001 Wirkung verschiedener Ableitungreihenfolgen?

S3 = {c → aca, c → bcb, c → a, c → b, c → ε} und u = c Menge aller in S3 aus c ableitbaren W¨ orter, die kein c enthalten?

43

Wiederholung: H¨ullen bin¨arer Relationen R ∪ IM heißt reflexive H¨ ulle von R ⊆ M 2 (mit Identit¨at IM = {(x, x) | x ∈ M}) R ∪ R −1 heißt symmetrische H¨ ulle von R ⊆ M 2 −1 (mit inverser Relation R = {(y , x) | (x, y ) ∈ R}) Wiederholung: Verkettung ◦ der Relationen R ⊆ M 2 und S ⊆ M 2 R ◦ S = {(x, z) ∈ M 2 | ∃y ∈ M : (x, y ) ∈ R ∧ (y , z) ∈ S} Iterierte Verkettung von R ⊆ M 2 mit sich selbst: R0 R

n+1

R+

= IM = Rn ◦ R [ = Rn ⊆ M2

N

transitive H¨ ulle

n∈ \{0}

R∗

=

[

N

Rn ⊆ M2

reflexiv-transitive H¨ ulle

n∈

44

Ersetzungsrelation Jedes Wortersetzungssystem S ⊆ (A∗ × A∗ ) definiert die Ersetzungsrelation →∗S ⊆ (A∗ × A∗ ), wobei genau dann u →∗S v gilt, wenn eine Ableitung von u nach v existiert. Beispiel: S = {a → aa}, I

f¨ ur jedes n ≥ 1 gilt ba →∗S b a| ·{z · · a} n

wegen ba →S baa →S baaa →S · · · →S b a| ·{z · · a} n

I

b →∗S b, aber f¨ ur kein Wort w 6= b gilt b →∗S w

(→∗S ist die reflexive transitive H¨ ulle von →S )

45

Modellierungsbeispiel: lineares Solitaire Startkonfiguration : n Spielsteine auf n benachbarten Spielfeldern. Spielzug : Springe mit einem Stein u ¨ber einen benachbarten Stein auf das n¨achste freie Feld und entferne den u ¨bersprungenen Stein. Spielende , wenn kein Zug mehr m¨ oglich ist. Modellierung als Wortersetzungssystem: I I I

Konfiguration: w ∈ {◦, •}∗ (• - Stein, ◦ - leer, 2 - Rand)

Startkonfiguration: 2 •n 2

zul¨assige Spielz¨ uge: ◦ • • → • ◦ ◦, • • ◦ → ◦ ◦ •, 2 • •2 → 2 • 2, . . .

Fragen: I

Welche Konfigurationen / Endkonfigurationen sind von der Startkonfiguration erreichbar?

I

Wieviele Z¨ uge sind mindestens / h¨ ochstens notwendig, um eine Endkonfiguration zu erreichen?

Jedes Paar (Wortersetzungssystem, Anfangskonfiguration) definiert die Menge (Sprache) aller erreichbaren Konfigurationen.

46

Sprachen aus Wortersetzungssystemen Jedes Paar (Wortersetzungssystem S, Anfangswort w ) u ¨ber einem Alphabet A definiert die Sprache L(S, w ) = {v ∈ A∗ | w →∗S v } (alle W¨orter v , die von w durch eine Ableitung in S erreicht werden) B: S = {c → aca, c → bcb, c → ε}, w = c L(S, w ) = {w ◦ c ◦ w R } (Menge aller Palindrome u ¨ber {a, b, c}, die h¨ochstens an der mittleren Position ein c enthalten) Jedes Paar (Wortersetzungssystem S, Menge M von W¨ortern) u ¨ber einem Alphabet A definiert die Sprache [ L(S, M) = L(S, w ) w ∈M

(alle W¨orter v , die von irgendeinem w ∈ M durch eine Ableitung in S erreicht werden) 47

Ausdrucksst¨arke von Wortersetzungssystemen Wortersetzungssysteme I

erm¨oglichen eine endliche Darstellung unendlicher Sprachen. (als Erzeugungsvorschrift f¨ ur alle W¨ orter der Sprache) Beispiele: L ({ε → aaa}, ε) = {a3n | n ∈ } = (aaa)∗ L ({2 → 020, 2 → 121}, 2) = {w 2w R | w ∈ {0, 1}∗ }

N

I

¨ k¨onnen zur Modellierung von Zust¨anden und Uberg¨ angen dazwischen verwendet werden z.B. Spiele, Ausf¨ uhrung von Programmen, Programmverifikation Beispiel: Lineares Solitaire

I

k¨onnen Berechnungen simulieren (Bestimmung von erreichbaren W¨ ortern ohne Nachfolger) Beispiel: ε ∈ L ({||| → |}, ||||||)

48

Wortproblem f¨ur durch Wortersetzungssysteme definierte Sprachen Ist ein gegebenes Wort w in der Sprache L(S, u) enthalten? alternative Formulierung: Gilt u →∗S w ? Ableitungsrelation →S als (unendlicher) gerichteter Graph GS = (V , E ) mit Knoten: V = A∗ Kanten: E = {(u, v ) | u →S v } u →∗S w gilt genau dann, wenn in GS ein Pfad von u nach w existiert. Beispiel: (Tafel) S = {ab → ba}, abab →∗S baba, aber abab 6→∗S abaa, abab 6→∗S aabb 49

Sprachen aus Wortersetzungssystemen L¨osung des Wortproblems und anderer Fragen zu Sprachen ist f¨ ur endliche Sprachen einfach, f¨ ur unendliche Sprachen oft nicht. Darstellung der Sprache durch ein Wortersetzungssystem kann helfen. L¨osung des Wortproblem w ∈ L(S, u) durch Standardverfahren: Suche eines Pfades von u nach w im Ableitungsgraphen des Wortersetzungssystems S Problem: I

Pfadsuche ist Standardverfahren f¨ ur endliche Graphen.

I

Ableitungsgraphen von Wortersetzungssystemen sind meist unendlich.

Standardverfahren ist in Spezialf¨allen anwendbar, wenn Suche in einem endlichen Teilgraphen gen¨ ugt 50

Nichtverl¨angernde Wortersetzungssysteme Ein Wortersetzungssystem S heißt genau dann nichtverl¨angernd, wenn f¨ ur jede Regel (l → r ) ∈ S gilt: |l| ≥ |r |. Wortproblem (L, w ): Eingabe : Sprache L ⊆ A∗ , Wort w ∈ A∗ Frage: Gilt w ∈ L? Ausgabe ja oder nein Beispiel: S = {ab → ba, ac → a}, u = abcac, v = aacb

Satz Es gibt einen Algorithmus, welcher f¨ ur f¨ ur jedes nichtverl¨angernde Wortersetzungssystem S ⊆ A∗ × A∗ und beliebige W¨orter u, w ∈ A∗ das Wortproblem (L(S, u), w ) in endlicher Zeit korrekt l¨ost. Idee: Suche im endlichen Teilgraphen aller W¨ orter v ∈ A∗ mit |v | ≤ |u| 51

Nichtverk¨urzende Wortersetzungssysteme Ein Wortersetzungssystem S heißt genau dann nichtverk¨ urzend, wenn f¨ ur jede Regel (l → r ) ∈ S gilt: |l| ≤ |r |. Beispiel: S = {a → ba, b → a}, u = ba, w = aaba, w 0 = abab

Satz Es gibt einen Algorithmus, welcher f¨ ur f¨ ur jedes nichtverk¨ urzende ∗ ∗ Wortersetzungssystem S ⊆ A × A und beliebige W¨orter u, w ∈ A∗ das Wortproblem (L(S, u), w ) in endlicher Zeit korrekt l¨ost. Idee: Suche im endlichen Teilgraphen aller W¨ orter v ∈ A∗ mit |u| ≤ |v | ≤ |w | 52

Wortersetzungssysteme mit verl¨angernden und verk¨urzenden Regeln Beispiel:  c     c      c aca S=   bcb      ada   bdb

→ → → → → → →

baaca, aacba, bbcabb, d, d, d, d

                  

Gilt c →∗S d? F¨ ur Wortersetzungssysteme S mit verl¨angernden und verk¨ urzenden Regeln existiert im Allgemeinen kein Algorithmus, der f¨ ur beliebige W¨orter u, w ∈ A∗ feststellt, ob u →∗s w gilt. 53

Was bisher geschah I

Alphabet, Wort, Sprache

I

Operationen und Relationen auf W¨ ortern und Sprachen

I

interessante Fragen f¨ ur Sprachen und W¨ orter

Regul¨are Ausdr¨ ucke I

Syntax, Semantik

I

endliche Darstellung evtl. unendlicher Sprachen

Wortersetzungssysteme P ⊆ A∗ × A∗ I

Wortersetzungssregel l → r mit l, r ∈ A∗

I

Ableitung in P: endliche Folge von Ersetzungsschritten

I

Ausdrucksst¨arke: I I I

Darstellung von (evtl. unendlichen) Sprachen Modellierung von Zustands¨ uberg¨angen Ausf¨ uhren von Berechnungen 54

Wiederholung Wortersetzungssysteme I

A = {s, w }, R = {ww → s, ss → s, ws → w , sw → w } (nichtverl¨angernd) Ist ww aus wsww ableitbar? (Gilt wsww →R ww ?) L(R, wsww ) ={wsww , www , wss, sw , ws, w }

I

A = {b, r , w }, S = {wr → rw , br → rb, bw → wb} (nichtverl¨angernd und nichtverk¨ urzend) Ist wbbr aus brwb ableitbar? L(S, brwb) ={brwb, rbwb, rwbb}

I

A = {a, b, c}, T = {a → ba, b → cc} (nichtverk¨ urzend) Ist aabbcc aus a ableitbar? L(T , a) =L ((b + cc)∗ a)

55

Ableitbare W¨orter u¨ber Teilalphabet Beispiele: A = {a, b, c},  c →      c → c → S=   c →    c →

aca, bcb, ε, a, b

          

L(S, c) = {u ◦ d ◦ u R | u ∈ {a, b}∗ ∧ d ∈ {a, b, c, ε}}

Menge aller W¨orter in L(S, c) ∩ {a, b}∗ : Palindrome u ¨ber {a, b} c ist Hilfssymbol zur Erzeugung der Palindrome 56

Nat¨urliche Sprache Wortersetzungssystem S enth¨alt die Regeln: Satz → Subjekt Pr¨adikat . Subjekt → mArtikel mSubstantiv Subjekt → wArtikel wSubstantiv mArtikel → Der wArtikel → Die mSubstantiv → Hund wSubstantiv → Sonne Pr¨adikat → bellt Pr¨adikat → scheint Alphabet A = {Der, Die, Hund, Sonne, scheint, bellt, .}∪ { Satz,Subjekt, Pr¨adikat, wArtikel, mArtikel, wSubstantiv, mSubstantiv} Ableitbare W¨ orter in L(S, Satz ) ohne Hilfssymbole aus der Menge {Satz, Subjekt, Pr¨adikat, mArtikel, wArtikel, mSubstantiv, wSubstantiv}: Menge korrekter deutscher S¨atze (dieser einfachen Form mit ausschließlich den Worten Der, Die, Hund, Sonne, scheint, bellt). 57

Aussagenlogische Formeln Wortersetzungssystem S enth¨alt die Regeln Formel → Variable Formel → Konstante Formel → ( ¬ Formel ) Formel → ( Formel ∨ Formel ) Formel → ( Formel ∧ Formel ) Variable → p Variable → q Konstante → t Konstante → f Alphabet A = {t, f, p, q, ¬, ∨, ∧, (, )} ∪ { Formel,Variable, Konstante} Formel →S (Formel ∧ Formel) →2S (Formel ∧ f) →∗S ((p ∨ (¬q)) ∧ f) W¨ orter in L(S, Formel ) ∩ {t, f, p, q, ¬, ∨, ∧, (, )}∗ : Menge AL({p, q}) aller aussagenlogischen Formeln mit Aussagenvariablen aus der Menge {p, q} 58

Aussagenlogische DNF Wortersetzungssystem S enth¨alt die Regeln DNF → Minterm ∨ DNF DNF → Minterm Minterm → Literal ∧ Minterm Minterm → Literal Literal → ¬ Variable Literal → Variable Variable → p Variable → q Alphabet A =

{p, q, ¬, ∨, ∧} ∪{ DNF, Minterm, Literal,Variable}

DNF →S Minterm ∨ DNF →3S p ∨ DNF →∗S p ∨ q ∧ ¬p ∨ ¬q W¨ orter in L(S, DNF ) ∩ {p, q, ¬, ∨, ∧}∗ : Menge AL({p, q}) aller disjunktiven Normalformen mit Aussagenvariablen aus der Menge {p, q} 59

Dezimaldarstellung nat¨urlicher Zahlen Wortersetzungssystem S enth¨alt die Regeln Zahl → 0 Zahl → 1Ziffernfolge .. . Zahl Ziffernfolge

→ → .. .

9Ziffernfolge 0Ziffernfolge

Ziffernfolge Ziffernfolge

→ →

9Ziffernfolge ε

Alphabet {0, . . . , 9} ∪ { Zahl, Ziffernfolge } Zahl →S 3Ziffernfolge →S 32Ziffernfolge →S 327Ziffernfolge →S 327 W¨orter in L(S, Zahl ) ∩ {0, . . . , 9}∗ : Menge aller Dezimaldarstellungen nat¨ urlicher Zahlen 60

Programmiersprachen Java-Syntax (Ausschnitt) in Backus-Naur Form (BNF) (John Backus, Peter Naur) ::=while() ::= ::=| ::= ::=|| ::= = | *= | /= | %= | += | -= | = | >>>= | &= | ^= | |=

a → r1 |r2 | . . . |rn statt mehrerer Regeln a → r1 , . . . , a → rn ::= statt → (in ASCII darstellbar) Hilfssymbole markiert durch < und > 61

Definition Grammatik Grammatik G = (N, T , P, S) mit Nichtterminalsymbole endliche Menge N (Hilfssymbole) Terminalsymbole endliche Menge T (Alphabet der erzeugten Sprache) Wortersetzungssystem P ⊆ (N ∪ T )+ × (N ∪ T )∗ (Produktionen) Startsymbol S ∈ N Beispiel: G = (N, T , P, S) mit N = {S}, = {0, 1},   S → 0S1 P = S → ε

T

62

Grammatiken: Beispiele I

G = (N, T , P, E ) mit N = {E , F , G }, T = {(, ), a, +, ·} und   E → G,         E → E + G ,       G → F, P= G → G · F,           F → a,     F → (E )

I

G = (N, T , P, S) mit N = {S, A, B, C }, T = {a, b, c}   S → aSBC ,         S → aBC ,         CB → BC ,   aB → ab, P=      bB → bb,          bC → bc,     cC → cc 63

Ableitungen in Grammatiken Ableitung in Grammatik G = (N, T , P, S): Ableitung im Ersetzungssystem P mit Startwort S

Beispiel: G = (N, T , P, S) mit N = {S, A, B} = {0, 1}  S    S P = A    B

T

→ → → →

0SA 0A 1 A

      

64

Durch Grammatiken definierte Sprachen Grammatik G = (N, T , P, S) definiert die Sprache L(G ) = {w ∈ T ∗ | S →∗P w } = L(P, S) ∩ T ∗ Beispiel: G = (N, T , P, S) mit N = {S, Z } = {0, 1}  S      S Z P =   Z    Z

T

→ → → → →

1Z , 0, 0Z , 1Z , ε

          

definiert die Sprache L(G ) = . . . 65

¨ Aquivalenz von Grammatiken Zwei Grammatiken G1 und G2 heißen genau dann ¨aquivalent, wenn L(G1 ) = L(G2 ) gilt. Beispiel: G1 = (N1 , {0, 1}, P1 , S)  S    S P1 = A    B

mit N1 = {S, A, B} und  → 0SA    → 0A → 1    → A

und G2 = (N2 , {0, 1}, P2 , S 0 ) mit N2 = {S 0 } und  P2 = S 0 → 0S 0 1, S 0 → 01 sind ¨aquivalent wegen L(G1 ) = L(G2 ) = . . . ¨ ¨ ¨ Aquivalenz von Grammatiken ist eine Aquivalenzrelation. (UA) 66

Grammatiken mit ε-Regeln

ε-Regel : Grammatik-Regel der Form l → ε

Beispiele: I

G1 = ({A, B}, {0, 1}, P1 , A) mit P1 = {A → 1B0, B → 1B0, B → ε} ist ¨aquivalent zu G2 = ({A}, {0, 1}, P2 , A) mit P2 = {A → 1A0, A → 10} (ohne ε-Regel)

I

G = ({A}, {0, 1}, P, A) mit P = {A → 1A0, A → ε} ist nicht ¨aquivalent zu einer Grammatik ohne ε-Regel

67

Chomsky-Hierarchie (Noam Chomsky) Eine Grammatik G = (N, T , P, S) ist vom Chomsky-Typ 0 immer, 1 , falls f¨ ur jede Regel (l → r ) ∈ P gilt: |l| ≤ |r | (monoton, kontextsensitiv) 2 , falls Typ 1 und f¨ ur jede Regel (l → r ) ∈ P gilt: l ∈ N (kontextfrei) 3 , falls Typ 2 und f¨ ur jede Regel (l → r ) ∈ P gilt: l ∈ N und r ∈ (T ∪ (T ◦ N)) (regul¨ar) Eine Sprache L ⊆ T ∗ heißt vom (Chomsky-)Typ i f¨ ur i ∈ {0, . . . , 3}, falls eine Grammatik G vom Typ i mit L \ {ε} = L(G ) existiert. Li bezeichnet die Menge aller Sprachen vom Typ i. Achtung: Nicht jede Sprache wird durch eine Grammatik erzeugt. 68

Beispiele I I I I

G P G P G P G

= ({S}, {a, b}, P, S) mit = {S → aSb, S → ab, S → a, S → b} ist vom Typ 2 = ({S}, {a, b}, P, S) mit = {S → aSb, S → a, S → b, S → ε} ist vom Typ 0 = ({S, A, B}, {a, b}, P, S) mit = {S → aA, A → aB, B → bB, B → b} ist vom Typ 3 = ({A, B, C }, {a, b, c}, P, A) mit   A → aABC ,         A → aBC ,          CB → BC ,  aB → ab, P=      bB → bb,          bC → bc,     cC → cc

ist vom Typ 1 definiert L(G ) = {an b n c n | n ∈

N \ {0}} 69

Was bisher geschah: Formale Sprachen Alphabet, Wort, Sprache Operationen und Relationen auf W¨ ortern und Sprachen ¨ I regul¨ are Ausdr¨ ucke: Syntax, Semantik, Aquivalenz

I

I

Wortersetzungssysteme I Wortersetzungsregeln und -systeme I Ableitungen, Ableitungsgraph I durch Wortersetzungssysteme definierte Sprachen I Wortproblem in Wortersetzungssystemen im Allgemeinen nicht algorithmisch l¨ osbar, aber algorithmisch l¨ osbar f¨ ur I I

I

nichtverl¨ angernde Systeme nichtverk¨ urzende Systeme

Grammatiken I Terminal-, Nichtterminalsymbole I Ableitungen in Grammatiken I durch Grammatiken definierte Sprachen ¨ I Aquivalenz von Grammatiken I Chomsky-Hierarchie f¨ ur Grammatiken und Sprachen 70

Wortproblem f¨ur Typ-1-Sprachen gegeben : Grammatik G = (N, T , P, S) vom Chomsky-Typ 1, Wort w ∈ T ∗ Frage : Gilt w ∈ L(G ) ?

Satz Es existiert ein Algorithmus, welcher f¨ ur jede beliebige Eingabe (G , w ), wobei I

T ein endliches Alphabet,

I

w ∈ T ∗ und

G eine monotone Grammatik (Chomsky-Typ 1) u ¨ber T sind die Wahrheit der Aussage w ∈ L(G ) korrekt beantwortet. I

(folgt aus entsprechendem Satz f¨ ur nichtverk¨ urzende Wortersetzungssysteme) demn¨achst spezielle (effizientere) Verfahren f¨ ur Grammatiken vom Chomsky-Typ 2 und 3 71

Dyck-Sprache Klammerpaar ( und ) Dyck-Sprache: Menge aller korrekt geklammerten Ausdr¨ ucke erzeugt durch Grammatik = ({S}, {(, )}, P, S) mit    S → ε  S → SS P =   S → (S)

G

Beispiele: I

()(()()) ∈ L(G )

I

())(6∈ L(G )

I

ε ∈ L(G )

Achtung: I

G hat Chomsky-Typ 0

I

Dyck-Sprache hat Chomsky-Typ 2 72

Allgemeine Dyck-Sprachen Menge aller korrekt geklammerten Ausdr¨ ucke mit n Paaren von Klammern: (i , )i f¨ ur i ∈ {1, . . . , n} erzeugt durch Grammatik = ({S}, {(i , )i | i ∈ {1, . . . , n}}, P, S) mit   S → ε P = ∪ {S → (i S)i | i ∈ {1, . . . , n}} S → SS

G

Symbole m¨ ussen nicht notwendig Klammern sein, z.B. aacdacababdbbcabdb ∈ Dyck-Sprache mit a statt (1 , b statt )1 , c statt (2 und d statt )2

73

Beispiel HTML mehrere Paare ¨offnender und schließender Klammern (Tags) Theoretische Informatik Theoretische Informatik ...

74

Wiederholung: abz¨ahlbare Mengen (Mathematik 1. Semester) Eine Menge M heißt genau dann abz¨ahlbar, wenn sie h¨ochstens so m¨achtig wie ist. (also eine surjektive Funktion f : → M existiert)

N

N

Mit dem ersten Diagonalverfahren von Cantor l¨asst sich z.B. zeigen: I

Z und Q sind abz¨ahlbar.

I

F¨ ur jedes endliche Alphabet A ist die Menge A∗ aller W¨orter u ¨ber A abz¨ahlbar.

I

F¨ ur jedes endliche Alphabet A ist jede Sprache L ⊆ A∗ abz¨ahlbar.

Mengen, die nicht abz¨ahlbar sind, heißen u ¨berabz¨ahlbar. 75

Beispiele u¨berabz¨ahlbarer Mengen Mit dem zweiten Diagonalverfahren von Cantor l¨asst sich zeigen:

R

N

ist u ¨berabz¨ahlbar (m¨achtiger als ). (Es gibt u ¨berabz¨ahlbar viele reelle Zahlen.)

R

[0, 1] ⊂ ist u ¨berabz¨ahlbar. (Intervall [0, 1] enth¨alt u ¨berabz¨ahlbar viele reelle Zahlen.)

2N (Menge aller Mengen nat¨ urlicher Zahlen) ist m¨achtiger als . ¨ (Uberabz¨ ahlbarkeit der Menge 2N ) Es gibt u berabz¨ ahlbar viele Mengen nat¨ urlicher Zahlen. ¨

N

2{0,1}

2(A





)

Menge aller Sprachen L ⊆ {0, 1}∗ ist m¨achtiger als {0, 1}∗ . (Es gibt u ¨berabz¨ahlbar viele Sprachen u ¨ber dem Alphabet {0, 1}.) ist f¨ ur beliebiges endliches Alphabet A m¨achtiger als A∗ (F¨ ur jedes nichtleere endliche Alphabet A ist die Menge aller Sprachen u ¨ber A u ¨berabz¨ahlbar. ) 76

L¨asst sich jede Sprache durch eine Grammatik erzeugen? Existiert f¨ ur jedes endliche Alphabet A zu jeder Sprache L ⊆ A∗ eine Grammatik G mit L = L(G )? Nein (Gegenbeispiel sp¨ater) Begr¨ undung: ∗

1. Wieviele Sprachen L ⊆ A∗ gibt es? (M¨achtigkeit von 2(A ) ) u ¨berabz¨ahlbar viele 2. Wieviele Grammatiken u ¨ber dem endlichen Alphabet A gibt es? abz¨ahlbar viele, weil I I I

I

Alphabet A0 = A ∪ {(, ), , , {, }, →, ε} endlich ∗ Menge (A0 ) aller W¨ orter u ¨ber A0 abz¨ahlbar ∗ jede Grammatik u ¨ber A ist ein Wort aus (A0 ) (endliche Beschreibung) Menge aller Grammatiken u ¨ber A ist Teilmenge der ∗ abz¨ahlbaren Menge (A0 ) , also selbst abz¨ahlbar

Damit existieren sogar sehr viel mehr (¨ uberabz¨ahlbar viele) Sprachen, die nicht durch Grammatiken beschrieben werden k¨ onnen. 77

Zustands¨ubergangssystem M¨unzschließfach fg S

b O

fo

A G

Z S bg

bo O

Aktionen: A aufschließen Z zuschließen O T¨ ur ¨offnen S T¨ ur schließen G Geld einwerfen

Zust¨ande : fg frei, T¨ ur zu fo frei, T¨ ur offen bo bezahlt, T¨ ur offen bg bezahlt, T¨ ur zu b belegt 78

Endliche Automaten – Definition

NFA (nondeterministic finite automaton) A = (X , Q, δ, I , F ) mit X endliches Alphabet, Q endliche Menge von Zust¨anden, ¨ δ Ubergangsrelationen δ : X → (Q × Q), I ⊆ Q Startzust¨ande, F ⊆ Q akzeptierende Zust¨ande.

79

NFA: Beispiel A = (X , Q, δ, {0, 3}, {2, 3, 4}) mit X

= {a, b, c}

Q = {0, 1, 2, 3, 4} δ(a) = {(0, 0), (0, 1), (1, 3)} δ(b) = {(0, 0), (1, 2)} δ(c) = {(0, 3), (3, 3), (4, 1)}

a,b a

0 c 3

b

1 a

2

c c

4 80

Eigenschaften endlicher Automaten NFA A = (X , Q, δ, I , F ) heißt vollst¨andig , falls ∀a ∈ X ∀p ∈ Q : |{q | (p, q) ∈ δ(a)}| ≥ 1 deterministisch (DFA) , falls 1. |I | = 1 und 2. ∀a ∈ X ∀p ∈ Q : |{q | (p, q) ∈ δ(a)}| ≤ 1 Beispiele: a,b

b

b

a

0

b

a

b

b 1

a

vollst¨andig nicht deterministisch

0

b

1

nicht vollst¨andig deterministisch

0

1 a

vollst¨andig deterministisch

81

Was bisher geschah I

Alphabet, Wort, Sprache

I

Operationen auf W¨ ortern und Sprachen

I

Grammatiken, Chomsky-Hierarchie

I

Wiederholung zweistellige Relationen, deren Verkn¨ upfung und Darstellungen (Graph, Matrix)

I

endlicher Automat (NFA) A = (X , Q, δ, I , F )

I

Eigenschaften eines NFA A = (X , Q, δ, I , F ): vollst¨andig: f¨ ur jedes Symbol a ∈ X und jeden Zustand p ∈ Q existiert mindestens ein Zustand q ∈ Q mit (p, q) ∈ δ(a) deterministisch: genau ein Startzustand und f¨ ur jedes Symbol a ∈ X und jeden Zustand p ∈ Q existiert h¨ ochstens ein Zustand q ∈ Q mit (p, q) ∈ δ(a) 82

Wiederholung: zweistellige Relationen Verkettung der Relationen R ⊆ M × M und S ⊆ M × M: R ◦ S = {(a, b) | ∃c ∈ M : (a, c) ∈ R ∧ (c, b) ∈ S} Beispiel: M = {a, b, c} R = {(a, a), (b, c)} S

= {(a, c), (c, b)}

R ◦S

= {(a, c), (b, b)}

S ◦ R = {(c, c)}

83

Darstellung als Graph als gerichteter Graph G = (V , E ) mit V = M und E = R b M = {a, b, c} R = {(a, a), (b, c)} a S = {(a, c), (c, b)} Verkettung als Pfade mit passender Markierung

R ◦S

c

b

= {(a, c), (b, b)}

S ◦ R = {(c, c)} a

c

84

Darstellung als Matrix mit Booleschen Eintr¨agen = {a, b, c}

M

 R

= {(a, a), (b, c)}

S

= {(a, c), (c, b)}

 1 0 0  0 0 1  0 0 0   0 0 1  0 0 0  0 1 0

Verkettung als Matrixmultiplikation mit Booleschen Operationen 

R ◦S

S ◦R

1 =  0 0  0 =  0 0

0 0 0 0 0 1

 0 1  0  1 0  0

0 0 0

0 0 1

1 0 0

0 0 0

  1 0 = 0   0 1 = 0

0 0 0

0 1 0

0 0 0

0 0 0

 1 0  0  0 0  1 85

¨ Ubergangsrelation auf W¨ortern ¨ Fortsetzung der Ubergangsrelationen δ : X → (Q × Q) ∗ ∗ auf W¨orter δ : X → (Q × Q): δ ∗ (ε) = {(q, q) | q ∈ Q} = IQ ∗

Identit¨at auf Q



δ (wa) = δ (w ) ◦ δ(a) = {(p, q) | ∃r ∈ Q : (p, r ) ∈ δ ∗ (w ) ∧ (r , q) ∈ δ(a)} f¨ ur alle w ∈ X ∗ , a ∈ X

F¨ ur w = w1 · · · wn ∈ X n gilt also

δ ∗ (w ) = δ(w1 ) ◦ · · · ◦ δ(wn )

(Multiplikation der Matrizen δ(w1 ), . . . , δ(wn ))

86

Beispiel a,b

A = ({a, b}, {0, 1}, δ, I , F ) mit δ(a) = {(0, 0)} und δ(b) = {(0, 0), (0, 1), (1, 1)}  δ(a) =

1 0

0 0

δ (ba) = δ(b)δ(a) =



δ (abb) = δ(a)δ(b)δ(b) =



b

0





b

1 0



 δ(b) =

1 0

0 0

1 1





1 0

1 0

1 1

0 0

1 0

1 1





1



 =

1 0

1 1

1 0

0 0





 =

1 0

1 0



87

Beispiel a,b

A = ({a, b}, {0, 1}, δ, I , F ) mit δ(a) = {(0, 0)} und δ(b) = {(0, 0), (0, 1), (1, 1)}  δ(a) =

1 0

δ(ba) = δ(b)δ(a) =

 δ(abb) = δ(a)δ(b)δ(b) =

1 0

b

0 

0 0 

b

 δ(b) =

1 0

0 0

1 1





1 0

1 0

1 1

0 0

1 0

1 1





1



 =

1 0

1 1

1 0

0 0





 =

1 0

1 0



88

Von einem NFA akzeptierte W¨orter NFA A = (X , Q, δ, I , F ) akzeptiert ein Wort w ∈ X ∗ genau dann, wenn δ(w ) ∩ (I × F ) 6= ∅.

alternative Formulierung: A akzeptiert w genau dann, wenn ein akzeptierender Weg, d.h. eine Folge (q0 , . . . , q|w | ) von Zust¨anden qi ∈ Q existiert, f¨ ur die gilt: 1. ∀i ∈ {1, . . . , |w |} : (qi−1 , qi ) ∈ δ(wi ), 2. q0 ∈ I (Startzustand) und 3. q|w | ∈ F (akzeptierender Zustand). w

w

w

q0 →1 q1 →2 · · · →n qn

mit

q0 ∈ I und qn ∈ F

89

Beispiel A = ({a, b}, {0, 1}, δ, {0}, {0}) mit δ(a) = {(0, 1)}, δ(b) = {(0, 1), (1, 0)} a,b 0

1 b

I

akzeptiert abbb u ¨ber den Weg a

b

b

b

0→1→0→1→0∈F I

akzeptiert bbb nicht b

b

b

a

a

0 → 1 → 0 → 1 6∈ F I

akzeptiert aaba nicht

0 → 1 →? 90

NFA-akzeptierbare Sprachen NFA A = (X , Q, δ, I , F ) akzeptiert die Sprache L(A) = {w ∈ X ∗ | ∃s ∈ I ∃f ∈ F : (s, f ) ∈ δ(w )} Beispiel: A = ({a, b}, {0, 1, 2}, δ, {0}, {2}) mit δ(a) = {(0, 0), (2, 2)} und δ(b) = {(0, 0), (0, 1), (1, 2), (2, 2)} akzeptiert L(A) = . . . Sprache L ⊆ X ∗ heißt genau dann NFA-akzeptierbar, wenn ein NFA A mit L = L(A) existiert. Menge aller NFA-akzeptierbaren Sprachen: REC(NFA) (recognizable) Beispiel: L = {w | w enth¨alt ein Infix aa oder bba} ist NFA-akzeptierbar. 91

Beispiele NFA-akzeptierbarer Sprachen

I

L1 = {w ∈ {0, 1}∗ | |w |0 ist ungerade }

I

L2 = {w ∈ {a, b}∗ | w beginnt mit ab und endet mit ba}

I

L3 = L(G ) mit G = ({S, T }, {0, 1}, P, S) mit P = {S → 11T , T → 0S, T → 0}

I

L4 = L(E ) mit E = (a + b)∗ ab ∗

I

L5 = L(F ) mit F = ((a + b)c)∗

92

Isomorphie endlicher Automaten Zwei NFA A = (X , Q, δ, I , F ) und B = (X , Q 0 , δ 0 , I 0 , F 0 ) sind genau dann isomorph, wenn eine bijektive Funktion h : Q → Q 0 existiert, so daß 1. genau dann s ∈ I , wenn h(s) ∈ I 0 , 2. genau dann f ∈ F , wenn h(f ) ∈ F 0 und 3. f¨ ur jedes a ∈ X : genau dann (p, q) ∈ δ(a), wenn (h(p), h(q)) ∈ δ 0 (a). Beispiel: A = ({a, b}, {0, 1, 2}, δ, {0}, {0}) mit δ(a) = {(0, 1), (1, 2), (2, 0)} und δ(b) = {(0, 2), (1, 0), (2, 1)} und B = ({a, b}, {α, β, γ}, δ, {β}, {β}) mit δ(a) = {(α, β), (β, γ), (γ, α)} und δ(b) = {(α, γ), (β, α), (γ, β)} sind isomorph mit h(0) = β, h(1) = γ, h(2) = α. (Graphisomorphie zwischen gerichteten Graphen mit markierten Kanten)

Fakt ¨ Isomorphie von NFA ist eine Aquivalenzrelation. 93

¨ Aquivalenz endlicher Automaten Zwei NFA A, B heißen genau dann ¨aquivalent, wenn L(A) = L(B) gilt. Beispiel: Der NFA A = ({a, b}, {0, 1, 2}, δ, {0}, {2}) mit δ(a) = {(0, 1), (1, 1)} und δ(b) = {(1, 1), (1, 2)} und der NFA B = ({a, b}, {0, 1, 2, 3}, δ, {0}, {2}) mit δ(a) = {(0, 1), (1, 1), (2, 1), (3, 3)} und δ(b) = {(0, 3), (1, 2), (2, 2), (3, 3)} sind ¨aquivalent. Warum?

Fakt ¨ ¨ Aquivalenz endlicher Automaten ist eine Aquivalenzrelation.

Fakt Isomorphe endliche Automaten sind immer auch ¨aquivalent. 94

Konstruktion von DFA aus NFA Motivation: In DFA existiert zu jedem Wort h¨ ochstens ein akzeptierender Weg, schnelles Feststellen der Akzeptanz m¨ oglich. Beispiel: A = ({a, b}, {0, 1, 2, 3, 4}, δ, {0, 4}, {3}) mit δ(a) = {(0, 0), (4, 4)(0, 1), (1, 3), (3, 3)} und δ(b) = {(0, 0), (4, 4), (4, 2), (2, 3), (3, 3)} allgemeines Verfahren: gegeben: NFA A = (X , QA , δA , IA , FA ) gesucht: DFA B = (X , QB , δB , IB , FB ) mit L(A) = L(B) Potenzmengenkonstruktion: NFA B = (X , QB , δB , IB , FB ) mit QB

=

2QA

(Einschr¨ankung auf von IB erreichbare gen¨ ugt)

IB

= {IA }

FB

= {M ⊆ QA | FA ∩ M 6= ∅}

∀a ∈ X : δB (a)

= {(M, N) | N = {q | ∃p ∈ M : (p, q) ∈ δA (a)}}

Fakt Der nach der Potenzmengenkonstruktion aus dem NFA A konstruierte Automat B ist vollst¨andig, deterministisch und ¨aquivalent zu A.

95

Was bisher geschah I

endlicher Automat (NFA) A = (X , Q, δ, I , F )

I

NFA-Eigenschaften: vollst¨andig, deterministisch

I

akzeptierender Weg f¨ ur Wort w = w1 · · · wn in einem NFA A = (X , Q, δ, I , F ): Folge (q0 , . . . , qn ) von Zust¨anden aus Q mit 1. q0 ∈ I , 2. qn ∈ F und 3. ∀i ∈ {1, . . . , n} : (qi−1 , qi ) ∈ δ(wi )

I

vom NFA A akzeptierte Sprache L(A)

I

Menge aller NFA-akzeptierbaren Sprachen: REC(NFA)

I

Isomorphie von NFA

I

¨ Aquivalenz von NFA

I

Zu jedem NFA existiert ein ¨aquivalenter DFA. (Potenzmengenkonstruktion) 96

Vervollst¨andigung von NFA Motivation: In vollst¨andigen NFA existiert zu jedem Wort wenigstens ein Weg, Akzeptanz jedes Wortes durch Menge der mit dem letzten Symbol erreichten Zust¨ande auf allen Wegen feststellbar.

Satz Zu jedem NFA existiert ein ¨aquivalenter vollst¨andiger NFA. (Hinzuf¨ ugen eines zus¨atzlichen nichtakzeptierenden Zustandes, falls notwendig) Beispiel: A = ({a, b, c}, {0, 1, 2, 3, 4}, δ, {0}, {2, 4}) mit δ(a) = {(0, 0), (1, 2), (3, 4), (4, 4)}, δ(b) = {(0, 1), (0, 3)} und δ(c) = {(3, 0)} 97

Wiederholung: Konstruktion von DFA aus NFA Motivation: In DFA existiert zu jedem Wort h¨ ochstens ein akzeptierender Weg, schnelles Feststellen der Akzeptanz m¨ oglich. Beispiel: A = ({a, b}, {0, 1, 2, 3, 4}, δ, {0, 4}, {3}) mit δ(a) = {(0, 0), (4, 4)(0, 1), (1, 3), (3, 3)} und δ(b) = {(0, 0), (4, 4), (4, 2), (2, 3), (3, 3)} allgemeines Verfahren: gegeben: NFA A = (X , QA , δA , IA , FA ) gesucht: DFA B = (X , QB , δB , IB , FB ) mit L(A) = L(B) Potenzmengenkonstruktion: NFA B = (X , QB , δB , IB , FB ) mit QB

=

2QA

(Einschr¨ankung auf von IB erreichbare gen¨ ugt)

IB

= {IA }

FB

= {M ⊆ QA | FA ∩ M 6= ∅}

∀a ∈ X : δB (a)

= {(M, N) | N = {q | ∃p ∈ M : (p, q) ∈ δA (a)}}

Fakt Der nach der Potenzmengenkonstruktion aus dem NFA A konstruierte Automat B ist vollst¨andig, deterministisch und ¨aquivalent zu A.

98

Wiederholung: Operationen auf Sprachen I

Mengenoperationen ∪, ∩, \,

I

Sprachoperationen

I

regul¨are Ausdr¨ ucke RegExp(X ): Syntax: Menge aller Grundterme u ¨ber der Signatur mit I I

R , ◦, ∗

Konstantensymbolen ∅, ε, jedes a ∈ X Operationssymbolen +, ∗

¨ 4.3.a) oder erzeugt durch Grammatik (UA Semantik: Zuordnung E ∈ RegExp(X ) → Sprache L(E ) ⊆ X ∗ Konstantensymbole → Basissprachen (Einermengen bzw. ∅) Operationssymbole → Sprachoperationen

99

NFA f¨ur Spiegelung ¨ 5.6) (UA Beispiel: DFA A = ({a, b}, {0, 1, 2, 3}, δA , {0}, {2, 3}) mit δA (a) = {(0, 1), (1, 3), (3, 3)} und δA (b) = {(1, 2), (2, 2)} allgemeines Verfahren: gegeben: NFA A = (X , Q, δA , IA , FA ) gesucht: NFA B mit L(B) = (L(A))R Konstruktion: NFA B = (X , Q, δB , IB , FB ) mit 1. IB = FA 2. FB = IA 3. ∀a ∈ X : δB (a) = δA (a)−1 = {(q, p) | (p, q) ∈ δA (a)}

Fakt Der oben definierte NFA B akzeptiert die Sprache (L(A))R . Die Menge REC(NFA) ist abgeschlossen unter Spiegelung. 100

NFA f¨ur Komplement NFA-akzeptierbarer Sprachen Beispiel: vollst¨andiger DFA A = ({a, b}, {0, 1, 2, 3}, δ, {0}, {2}) mit δ(a) = {(0, 1), (1, 3), (2, 2), (3, 3)} und δ(b) = {(0, 3), (1, 2), (2, 2), (3, 3)} allgemeines Verfahren: gegeben: vollst¨andiger DFA A = (X , Q, δ, I , F ) gesucht: NFA B mit L(B) = L(A) Konstruktion: DFA B = (X , Q, δ, I , Q \ F )

Fakt Der oben definierte NFA B akzeptiert die Sprache L(A). Die Menge REC(NFA) ist abgeschlossen unter Komplementbildung. 101

NFA f¨ur Vereinigung NFA-akzeptierbarer Sprachen Beispiel: NFA A = ({a, b}, {0, 1}, δA , {0}, {0}) mit δA (a) = {(0, 1), (1, 0)} und δA (b) = ∅ NFA B = ({a, b}, {2, 3, 4}, δB , {2}, {4}) mit δB (a) = {(2, 3), (4, 3)} und δB (b) = {(3, 4)} allgemeines Verfahren: gegeben: NFA A = (X , QA , δA , IA , FA ) und NFA B = (X , QB , δB , IB , FB ) mit QA ∩ QB = ∅ (Zust¨ande umbenennen, falls notwendig) gesucht: NFA C mit L(C ) = L(A) ∪ L(B) Konstruktion: NFA C = (X , QA ∪ QB , δC , IA ∪ IB , FA ∪ FB ) mit ∀a ∈ X : δC (a) = δA (a) ∪ δB (a)

Fakt Der oben definierte NFA C akzeptiert die Sprache L(A) ∪ L(B). Die Menge REC(NFA) ist abgeschlossen unter Vereinigung. Zu gegebenen NFA A und B l¨asst sich damit auch ein Automat C mit L(C ) = L(A) ∩ L(B) = L(A) ∪ L(B) (deMorgan) konstruieren. 102

DFA f¨ur Schnittmenge Beispiel: DFA A = ({a, b}, {0, 1}, δA , {0}, {1}) mit δA (a) = {(0, 0)} und δA (b) = {(0, 1), (1, 1)} DFA B = ({a, b}, {2, 3}, δB , {2}, {3}) mit δB (a) = {(2, 3), (3, 3)} und δB (b) = {(3, 3)} allgemeines Verfahren: gegeben: DFA A = (X , QA , δA , IA , FA ), DFA B = (X , QB , δB , IB , FB ) gesucht: DFA C = (X , QC , δC , IC , FC ) mit L(C ) = L(A) ∩ L(B) Produkt-Konstruktion: DFA C = (X , QA × QB , δC , IA × IB , FA × FB ) mit ∀a ∈ X : δC (a) = {((p, q), (r , s)) | (p, r ) ∈ δA (a) ∧ (q, s) ∈ δB (a)}

Fakt Der oben definierte DFA C akzeptiert die Sprache L(A) ∩ L(B). Die Menge REC(NFA) ist abgeschlossen unter Schnitt. Modifikation (Tafel): dieselbe Konstruktion des DFA C aus vollst¨andigen DFA A und B I

mit akzeptierenden Zust¨anden FC = FA × FB akzeptiert L(A) ∩ L(B)

I

mit akzeptierenden Zust¨anden FC = (FA × QB ) ∪ (QA × FB ) akzeptiert L(A) ∪ L(B)

103

¨ NFA mit ε-Uberg¨ angen ε-NFA: NFA ohne Einschr¨ankung δ(ε) = IQ , stattdessen δ(ε) ⊇ IQ (zus¨atzliche Kanten im Automatengraphen mit Beschriftung ε) ε-NFA vereinfachen oft die Modellierung von Sprachen und Abl¨aufen. Beispiel: A = ({a, b, c}, {0, 1, 2}, δ, {0}, {2}) mit δ(a) = {(0, 0)}, δ(b) = {(1, 1)}, δ(c) = {(2, 2)} und δ(ε) = {(0, 1), (1, 2)} Akzeptanz von W¨ ortern analog zu NFA: ε-NFA A = (X , Q, δ, I , F ) akzeptiert ein Wort w ∈ X ∗ genau dann, wenn δ ∗ (w ) ∩ (I × F ) 6= ∅. δ ∗ (w ) = δ ∗ (ε) ◦ δ(w1 ) ◦ δ ∗ (ε) ◦ · · · ◦ δ ∗ (ε) ◦ δ(wn ) ◦ δ ∗ (ε)

ε-NFA A im Beispiel oben akzeptiert die Sprache L(A) = a∗ b ∗ c ∗

Fakt Zu jedem NFA A existiert ein ¨aquivalenter ε-NFA B mit genau einem Startzustand und genau einem akzeptierenden Zustand. 104

¨ Eliminierung der ε-Uberg¨ ange aus ε-NFA δ ∗ (ε) ist der transitive Abschluß der Relation δ(ε) ε-H¨ ulle eines Zustandes q ∈ Q: Hε (q) = {p | (q, p) ∈ δ ∗ (ε)} allgemeines Verfahren: gegeben: ε-NFA A = (X , Q, δ, I , F ) mit δ(ε) ⊇ IQ ¨ gesucht: NFA B ohne ε-Uberg¨ ange mit L(B) = L(A) Konstruktion (ε-Eliminierung): B = (X , Q, δ 0 , I 0 , F ) mit [ I0 = Hε (q) q∈I 0

 ∀ : a ∈ X : δ (a) = δ(a) ∪ (p, q 0 ) | (p, q) ∈ δ(a) ∧ q 0 ∈ Hε (q)

Fakt Der durch ε-Eliminierung aus dem ε-NFA A konstruierte NFA B ¨ enth¨alt keine ε-Uberg¨ ange und ist ¨aquivalent zu A. 105

NFA f¨ur Verkettung NFA-akzeptierbarer Sprachen Beispiel: NFA A = ({a, b}, {0}, δA , {0}, {0}) mit δA (a) = ∅ und δA (b) = {(0, 0)} NFA B = ({a, b}, {1, 2, 3}, δB , {1, 3}, {2}) mit δB (a) = {(3, 2), (3, 3)} und δB (b) = {(1, 2)} allgemeines Verfahren: gegeben: NFA A = (X , QA , δA , IA , FA ) und NFA B = (X , QB , δB , IB , FB ) mit QA ∩ QB = ∅ gesucht: NFA C mit L(C ) = L(A) ◦ L(B) Konstruktion: 1. (A0 ≡ A ∧ |FA0 | = 1): ε-NFA A0 = (X , QA ∪ {fA }, δA0 , IA , {fA }) mit ∀a ∈ X : δA0 (a) = δA (a) und δA0 (ε) = δA (ε) ∪ {(q, fA ) | q ∈ FA } 2. (B 0 ≡ B ∧ |IB 0 | = 1): ε-NFA B 0 = (X , QB ∪ {sB }, δB0 , {sB }, FB ) mit ∀a ∈ X : δB0 (a) = δB (a) und δB0 (ε) = δB (ε) ∪ {(sB , q) | q ∈ IB } 3. (◦): ε-NFA C = (X , QA ∪ QB ∪ {fA , sB }, δC , IA , FB ) mit ∀a ∈ X : δC (a) = δA0 (a) ∪ δB0 (a) δC (ε) = δA0 (ε) ∪ δB0 (ε) ∪ {(fA , sB )}

Fakt Der oben definierte ε-NFA C akzeptiert die Sprache L(A) ◦ L(B). Die Menge REC(NFA) ist abgeschlossen unter Verkettung.

106

Was bisher geschah I

NFA A = (X , Q, δ, I , F )

I

Akzeptanz von W¨ ortern durch NFA, DFA, ε-NFA

I

von NFA, DFA, ε-NFA akzeptierte Sprache L(A)

I

NFA-akzeptierbare Sprachen REC(NFA) F¨ ur jede Sprache L ⊆ X ∗ sind die folgenden Aussagen ¨aquivalent:

I

1. 2. 3. 4. I

L ∈ REC(NFA), d.h. es existiert ein NFA A mit L = L(A). Es existiert ein vollst¨andiger NFA B mit L = L(B). Es existiert ein DFA C mit L = L(C ). Es existiert ein vollst¨andiger DFA D mit L = L(D).

REC(NFA) ist abgeschlossen unter: I I

Mengenoperationen ∪, ∩, , \ Sprachoperationen R , ◦

107

NFA f¨ur iterierte Verkettung Beispiel: NFA A = ({a, b}, {0, 1, 2, 3}, δA , {0}, {3}) mit δA (a) = {(0, 1), (2, 3)} und δA (b) = {(1, 2)} allgemeines Verfahren: gegeben: NFA A = (X , Q, δA , I , F ) gesucht: NFA B mit L(B) = L(A)∗ Konstruktion: 1. (A0 ≡ A ∧ |IA0 | = 1 ∧ |FA0 | = 1): ε-NFA A0 = (X , QA ∪ {sA , fA }, δA0 , {sA }, {fA }) mit ∀a ∈ X : δA0 (a) = δA (a) und δA0 (ε) = {(sA , q) | q ∈ IA } ∪ {(q, fA ) | q ∈ FA } 2. (∗ ): ε-NFA B = (X , QA ∪ {sA , fA }, δB , {sA }, {fA }) mit ∀a ∈ X : δB (a) = δA0 (a) und δB (ε) = δA0 (ε) ∪ {(sA , fA ), (fA , sA )}

Fakt Der oben definierte ε-NFA B akzeptiert die Sprache L(A)∗ . REC(NFA) ist abgeschlossen unter iterierter Verkettung. 108

Abschlusseigenschaften der Menge REC(NFA) Satz Sind L und L0 NFA-akzeptierbare Sprachen, dann sind auch die Sprachen I

L ∪ L0 (Vereinigung)

I

L (Komplement)

I

L ∩ L0 (Schnitt)

I

L ◦ L0 (Verkettung)

I

Ln , L∗ (iterierte Verkettung)

I

LR (Spiegelung)

NFA-akzeptierbar. dieselbe Aussage k¨ urzer: Die Menge REC(NFA) ist abgeschlossen unter I I

Mengenoperationen: ∪, Sprachoperationen ◦,

(und damit auch ∩ und \)

∗, R 109

Regul¨arer Ausdruck → NFA Fakt Jede durch einen regul¨aren Ausdruck definierte Sprache ist NFA-akzeptierbar. Beispiel: ab ∗ + b induktiver Beweis: (Induktion u ¨ber die Struktur des regul¨aren Ausdruckes) IA L(∅), L(ε) und L(a) f¨ ur alle a ∈ X sind NFA-akzeptierbar (Tafel) IS sind L(E ) und L(F ) NFA-akzeptierbar, dann sind auch I I I

L(E + F ) = L(E ) ∪ L(F ), L(EF ) = L(E ) ◦ L(F ) und L(E ∗ ) = L(E )∗

NFA-akzeptierbar (wegen Abgeschlossenheit von REC(NFA) unter ∪, ◦,

∗)

110

DFA-Minimierung Ein vollst¨andiger DFA A heißt genau dann minimal f¨ ur die Sprache L(A), wenn kein vollst¨andiger DFA B mit L(A) = L(B) und weniger Zust¨anden als A existiert. Beispiel: DFA A = ({a, b}, {0, 1, 2, 3, 4}, δ, {0}, {4}) mit δ(a) = {(0, 1), (1, 4), (2, 3), (3, 4), (4, 4)} und δ(b) = {(0, 2), (1, 2), (2, 2), (3, 0), (4, 4)} Idee (f¨ ur vollst¨andigen DFA A = (X , Q, δ, I , F )): I

f¨ ur jedes Paar (p, q) von Zust¨anden in Q: Suche nach einem (k¨ urzesten) unterscheidenden Wort

I

I

Zust¨ande sind ¨aquivalent, wenn kein unterscheidendes Wort existiert ¨ Zerlegung von Q in Aquivalenzklassen von Zust¨anden

I

diese Klassen sind die Zust¨ande des minimalen DFA. 111

¨ Aquivalente Zust¨ande in einem DFA Beispiel: A = ({a, b}, {0, 1, 2, 3}, δ, {0}, {3}) mit δ(a) = {(0, 1)} und δ(b) = {(0, 2), (1, 3), (2, 3)} allgemein: DFA A = (X , Q, δ, I , F ) und Zustand q ∈ Q definieren einen DFA Aq = (X , Q, δ, {q}, F ) Zust¨ande p, q ∈ Q heißen genau dann ¨aquivalent in A, wenn L(Ap ) = L(Aq ) gilt. Ein Wort w ∈ X ∗ unterscheidet die Zust¨ande p ∈ Q und q ∈ Q, falls w ∈ L(Ap )∆L(Aq ) (symmetrische Differenz von L(Ap ) und L(Aq ))

112

Algorithmus zur Bestimmung ¨aquivalenter Zust¨ande gegeben: DFA A = (X , Q, δ, I , F )

Fakt Falls das Wort w ∈ X ∗ die Zust¨ande p 0 , q 0 ∈ Q in A unterscheidet und f¨ ur ein a ∈ X gilt (p, p 0 ) ∈ δ(a) und (q, q 0 ) ∈ δ(a), dann unterscheidet das Wort aw ∈ X ∗ die Zust¨ande p, q ∈ Q in A. Induktive Berechnung einer Folge Ti von Mengen von unterscheidbaren Zustandspaaren (Zweiermengen, Beispiel Tafel): T0 Ti+1

{{p, q} | p ∈ F , q 6∈ F }    {p 0 , q 0 } ∈ Ti   = Ti ∪ {p, q} | ∃a ∈ X ∃p 0 , q 0 ∈ Q :  ∧(p, p 0 ) ∈ δ(a)    ∧(q, q 0 ) ∈ δ(a)

=

(Ti : Menge aller durch ein w mit |w | ≤ i unterscheidbaren Paare) F¨ ur jeden vollst¨andigen DFA A existiert ein n ∈ mit Tn = Tn+1 . F¨ ur jedes Paar {p, q} 6∈ Tn sind p und q ¨aquivalent in A.

N

¨ Alternative Darstellung: Folge von Aquivalenzrelationen ∼i ⊆ Q 2 mit p ∼i q

gdw.

∀w ∈ X ∗ : |w | ≤ i → (w ∈ Ap ↔ w ∈ Aq ) 113

Minimalautomat gegeben: DFA A = (X , QA , δA , IA , FA ) Minimalautomat f¨ ur L(A): DFA B = (X , QB , δB , IB , FB ) mit QB

= {[q]A | q ∈ Q}

¨ Aquivalenzklassen in A

∀a ∈ X : δB (a) = {([p]A , [qA ]) | (p, q) ∈ δA (a)} IB

= {[q]A | q ∈ IA }

FB

= {[q]A | q ∈ FA }

Satz Zu jeder NFA-akzeptierbaren Sprache L ⊆ X ∗ existiert ein (bis auf Isomorphie) eindeutiger vollst¨andiger DFA A mit L = L(A) und einer minimalen Anzahl von Zust¨anden (Minimalautomat f¨ ur L). 114

¨ Entscheidung der Aquivalenz von NFA Eingabe: NFA A, B Ausgabe: ja, falls A und B ¨aquivalent (also L(A) = L(B)) nein, sonst Algorithmus: 1. Konstruktion der DFA A0 und B 0 mit L(A0 ) = L(A) und L(B 0 ) = L(B) (Potenzmengenkonstruktion), 2. Konstruktion der Minimalautomaten A00 zu A0 und B 00 zu B 0 3. Test, ob A00 und B 00 isomorph sind (Isomorphietest f¨ ur Graphen).

Fakt Die NFA A und B sind genau dann ¨aquivalent, wenn die Automaten A00 und B 00 isomorph sind. 115

¨ Entscheidung der Aquivalenz regul¨arer Ausdr¨ucke Eingabe: Ausgabe:

Regul¨are Ausdr¨ ucke E , F ja , falls E und F ¨aquivalent (L(E ) = L(F )) nein , sonst

Algorithmus: 1. Konstruktion der NFA AE und AF mit L(AE ) = L(E ) und L(AF ) = L(F ), 2. Konstruktion der DFA A0E und A0F mit L(A0E ) = L(E ) und L(A0F ) = L(F ) (Potenzmengenkonstruktion), 3. Konstruktion der Minimalautomaten A00E zu A0E und A00F zu A0F 4. Test, ob A00E und A00F isomorph sind (Isomorphietest f¨ ur Graphen).

Fakt Die regul¨aren Ausdr¨ ucke E und F sind genau dann ¨aquivalent, wenn die Automaten A00E und A00F isomorph sind. Beispiel: (ab)+ a und a(ba)∗ ba

116

Was bisher geschah I

NFA A = (X , Q, δ, I , F ) I I I

I

vollst¨andig (Vervollst¨andigung) deterministisch, DFA (Potenzmengenkonstruktion) Minimalautomat: minimaler vollst¨andiger DFA

F¨ ur jede Sprache L ⊆ X ∗ sind die folgenden Aussagen ¨aquivalent: 1. L ∈ REC(NFA), d.h. es existiert ein NFA A mit L = L(A). 2. Es existiert ein DFA B mit L = L(B). 3. Es existiert ein eindeutiger minimaler vollst¨andiger DFA C mit L = L(C ).

I

Automatenkonstruktionen f¨ ur Operationen auf Sprachen: I I

I

Mengenoperationen ∪, ∩, , \, ∆ Sprachoperationen R , ◦, ∗

Die Menge REC(NFA) aller NFA-akzektierbaren Sprachen ist abgeschlossen unter I I

Mengenoperationen ∪, ∩, , \, ∆ und Sprachoperationen ◦, ∗ , R 117

NFA und regul¨are Grammatiken Beispiel: NFA A = ({a, b}, {0, 1, 2}, δ, {0}, {2}) mit δ(a) = {(0, 1)} und δ(b) = {(1, 0), (1, 2)} regul¨are Grammatik G = ({S, B}, {a, b}, P, S) mit P = {S → aB, B → bS, B → b} definieren beide die Sprache L(A) = L(G ) = {(ab)n | n ∈

N \ {0}}

Satz Eine Sprache L ⊆ X ∗ ist genau dann NFA-akzeptierbar, wenn L \ {ε} von einer regul¨aren Grammatik (Chomsky-Typ 3) erzeugt wird.

118

Konstruktion: regul¨are Grammatik → NFA gegeben: regul¨are Grammatik G = (N, X , P, S) (Chomsky 3) Konstruktion: NFA A = (X , Q, δ, I , F ) mit Q = N ∪ {f } mit f 6∈ N I

= {S}

F

= {f }

f¨ ur jedes a ∈ X : δ(a) = {(A, B) | (A → aB) ∈ P} ∪{(A, f ) | (A → a) ∈ P} Beispiel: Zur regul¨aren Grammatik G = ({S, B}, {0, 1}, P, S) mit P = {S → 0B, B → 0B, B → 1S, B → 0} wird der NFA A = ({0, 1}, {S, B, f }, δ, {S}, {f }) mit δ(0) = {(S, B), (B, B), (B, f )} und δ(1) = {(B, S)} konstruiert.

Fakt F¨ ur den wie oben zur Grammatik G konstruierten NFA A gilt L(G ) = L(A). 119

Konstruktion: NFA → regul¨are Grammatik gegeben: NFA A = (X , Q, δ, I , F ) Konstruktion: regul¨are Grammatik G = (N, X , P, S) mit N

=

P

=

Q ∪ {S} mit S 6∈ Q [ {p → aq | (p, q) ∈ δ(a)} a∈X



[

{S → aq | ∃s ∈ I : (s, q) ∈ δ(a)}

a∈X



[

{p → a | ∃f ∈ F : (p, f ) ∈ δ(a)}

a∈X



[

{S → a | ∃s ∈ I ∃f ∈ F : (s, f ) ∈ δ(a)}

a∈X

Beispiel: A = ({a, b}, {0, 1, 2}, δ, {0}, {2}) mit δ(a) = {(0, 1), (1, 2)} und δ(b) = {(1, 1), (2, 1)} konstruierte Grammatik G = ({S, 0, 1, 2}, {a, b}, P, S) mit P = {0 → a1, 1 → b1, 1 → a2, 2 → b1, S → a1, 1 → a}

Fakt F¨ ur die wie oben aus dem NFA A konstruierte Grammatik G gilt L(G ) = L(A) \ {ε}.

120

DFA → regul¨arer Ausdruck Beispiel: A = ({a, b}, {1, 2}, δ, {1}, {1}) mit δ(a) = {(1, 2)} und δ(b) = {(1, 1)(2, 1)} gegeben: DFA A = (X , Q, δ, I , F ) mit Q = {1, . . . , n} und I = {1} schrittweise Konstruktion regul¨arer Ausdr¨ ucke (Dynamische Programmierung): R(k, i, j) beschreibt die Menge aller W¨ orter, f¨ ur die ein Pfad von i zu j nur u ¨ber (Zwischen-)Zust¨ande ≤ k existiert

R(0, i, j) R(k + 1, i, j)

( {a ∈ X | (i, j) ∈ δ(a)} = ε + {a ∈ X | (i, j) ∈ δ(a)}

falls i 6= j falls i = j

= R(k, i, j) + (R(k, i, k + 1)R(k, k + 1, k + 1)∗ R(k, k + 1, j))

Fakt F¨ ur den so konstruierten regul¨aren Ausdruck E = gilt L(E ) = L(A).

S

f ∈F

R(n, 1, f ) 121

NFA und regul¨are Ausdr¨ucke Schon gezeigt:

Fakt Jede NFA-akzeptierbare Sprache wird durch einen regul¨aren Ausdruck definiert.

Fakt Jede durch einen regul¨aren Ausdruck definierte Sprache ist NFA-akzeptierbar. Das ergibt zusammen:

Satz Eine Sprache ist genau dann NFA-akzeptierbar (∈ REC(NFA)), wenn sie regul¨ar (durch einen regul¨aren Ausdruck definiert) ist. REC(NFA) ist genau die Menge aller regul¨aren Sprachen. 122

Wiederholung Schubfachschluss-Prinzip (Pigeonhole principle) Verteilt man mehr als n Objekte in n Schubf¨acher, dann gibt es (wenigstens) ein Schubfach, welches (wenigstens) zwei Objekte enth¨alt. ∀O∀S∀f : ((|O| > |S| ∧ f : O → S) → ∃x∃y : (x 6= y ∧ f (x) = f (y ))) F¨ ur |O| > |S| existiert keine injektive Funktion f : O → S. Beispiele: I

Von 13 Personen haben mindestens zwei im selben Monat Geburtstag.

I

Wieviele Karten aus einem Skatblatt muss man ziehen, damit zwei derselben Farbe dabei sind?

I

vier verschiedene Paare Socken im Dunklen: Wieviele Socken muss man (blind) nehmen, damit ein vollst¨andiges Paar dabei ist?

I

Auf jeder Party gibt es wenigsten zwei Personen mit der selben Anzahl an Gespr¨achspartnern. 123

Nicht NFA-akzeptierbare Sprachen Fakt Die Sprache L = {an b n | n > 0} ist nicht NFA-akzeptierbar. Beweisschema (indirekter Beweis): L nicht NFA-akzeptierbar

gdw.

¬∃A : (L(A) = L) gdw. ∀A : ¬(L(A) = L)

gdw.

∀A : ( (L(A) = L) → ¬(L(A) = L) ) | {z } | {z } Folgerung ¬P(A)

Annahme P(A)

Beweis: Annahme: f¨ ur NFA A = (X , Q, δ, I , F ) mit k = |Q| gilt L(A) = L ur ak b k in A: Wegen ak b k ∈ L existiert ein akzeptierender Pfad f¨ a

a

a

b

b

b

q0 → q1 → · · · → qk → qk+1 → · · · → q2k SFS: |Q| = k (Schubf¨acher) und |{0, . . . , k}| > k (Objekte) Daher existieren i, j ∈ {0, . . . , k} mit i < j und qi = qj . a

a

a

a

a

a

b

b

b

q0 → q1 → · · · → qi → qj+1 → · · · → qk → qk+1 → · · · → q2k ist also akzeptierender Pfad f¨ ur ak−(j−i) b k in A, d.h ak−(j−i) b k ∈ L(A) k−(j−i) k Aus a b 6∈ L folgt ¬(L(A) = L) im Widerspruch zur Annahme. Also ist die Annahme falsch und es existiert kein NFA A mit L = L(A). 124

Nicht NFA-akzeptierbare Sprache

Die Grammatik G = (N, T , P, S) mit N = {S}, T = {a, b} und P = {S → aSb, S → ab} ist kontextfrei und erzeugt die nicht NFA-akzeptierbare Sprache L(G ) = {an b n | n > 0}

Also ist nicht jede kontextfreie Sprache (Chomsky-Typ 2) NFA-akzeptierbar. L(G ) ∈ L2 \ REC(NFA)

also

L2 6⊆ REC(NFA)

125

Weitere nicht NFA-akzeptierbare Sprachen sehr hilfreiches Prinzip: Da REC(NFA) unter ∩ abgeschlossen ist, gilt f¨ ur alle Sprachen L, L0 , L00 : ( L ∩ L0 = L00 ∧ L0 ∈ REC(NFA) ∧ L00 6∈ REC(NFA) ) → L 6∈ REC(NFA)

I

L = {w ∈ {a, b}∗ | |w |a = |w |b > 0} 6∈ REC(NFA) (wegen L ∩ a∗ b ∗ = {an b n | n > 0} 6∈ REC(NFA) )

I

L = {w ∈ {a, b}∗ | 2|w |a = |w |b ∈ } 6∈ REC(NFA) (wegen L ∩ a∗ b ∗ = {an b 2n | n > 0} 6∈ REC(NFA) nach Schubfachschluss).

I

L = {w ∈ {a, b}∗ | w = w R } 6∈ REC(NFA) (Palindrome) (wegen L ∩ a∗ ba∗ = {an ban | n ∈ } 6∈ REC(NFA))

I

N

2

N

N

L = {a(n ) | n ∈ } 6∈ REC(NFA) (wegen Schubfachschluss, Wortl¨angen) 126

Anwendung von NFA und regul¨aren Sprachen I

Modellierung vom Verhalten von Zustands¨ ubergangssystemen, z.B. I I

I

reale Ger¨ate und Anlagen Softwaresysteme

¨ Uberpr¨ ufung, ob Zustands¨ ubergangssystem bestimmte Anforderungen erf¨ ullt Beschreibung der Syntax von Programmiersprachen z.B. I I I

endlicher Mengen (Mengen von Schl¨ usselw¨ ortern) Folgen von Zeichen und Zeichenketten Zahlendarstellungen

I

lexikalische Analyse im Compiler

I

Suche nach Zeichenketten in Texten (string matching)

I

Textverarbeitung, z.B. Wortvervollst¨andigung

127

Ergebnisse u¨ber regul¨are Sprachen F¨ ur jede Sprache L ⊆ X ∗ sind die folgenden Aussagen ¨aquivalent: I I I I I I I I I I

L hat den Chomsky-Typ 3. L = L(E ) f¨ ur einen regul¨aren Ausdruck E . L ist NFA-akzeptierbar. Es existiert ein DFA A mit L = L(A). Es existiert eine regul¨are Grammatik G mit L \ {ε} = L(G ). Es existiert eine regul¨are Grammatik G mit ε-Regel und L = L(G ). Es existiert eine rechtslineare Grammatik Gr mit L = L(Gr ) \ {ε}. Es existiert eine rechtslineare Grammatik Gr0 mit ε-Regel mit L = L(Gr ). Es existiert eine linkslineare Grammatik Gl mit L = L(Gl ) \ {ε}. Es existiert eine linkslineare Grammatik Gl0 mit ε-Regel mit L = L(Gl0 ).

Die Menge aller Sprachen vom Chomsky-Typ 3 ist abgeschlossen unter I

Mengenoperationen: ∪, ∩, , \, ∆

I

Sprachoperationen: ◦, ∗ ,

R

128

Algorithmische L¨osungen f¨ur regul¨are Sprachen alle Sprachen in Eingaben endlich beschrieben, z.B. als NFA Wortproblem Eingabe: (L, w ), Ausgabe: ja, falls w ∈ L, sonst nein (Suche nach mit w markiertem Pfad im Automatengraphen) Leerheit Eingabe: L, Ausgabe: ja, falls L = ∅, sonst nein (Erreichbarkeit akzeptierender Zust¨ande in NFA f¨ ur L) Vollst¨andigkeit Eingabe: L, Ausgabe: ja, falls L = X ∗ , sonst nein (Erreichbarkeit im Automaten f¨ ur L) (Un-)Endlichkeit Eingabe: L, Ausgabe: ja, falls L (un-)endlich, sonst nein (Suche nach akzeptierendem Weg mit Schleife) Inklusion Eingabe: L1 , L2 , Ausgabe: ja, falls L1 ⊆ L2 , sonst nein (Test L1 ∩ L2 = ∅) Gleichheit Eingabe: L1 , L2 , Ausgabe: ja, falls L1 = L2 , sonst nein ? (isomorphe Minimalautomaten oder Test L1 ∆L2 = ∅) Disjunktheit Eingabe: L1 , L2 , Ausgabe: ja, falls L1 ∩ L2 = ∅, sonst nein 129

Was bisher geschah Chomsky-Hierarchie f¨ ur Sprachen: L0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L1 Menge aller monotonen (Kontextsensitive) Sprachen L2 Menge aller kontextfreien Sprachen L3 = REG Menge aller regul¨aren Sprachen REG ist abgeschlossen unter ∪, ∩, , ◦,

∗, R

I

regul¨are Ausdr¨ ucke beschreiben

I

regul¨are Grammatiken (Chomsky-Typ 3) erzeugen

I

endliche Automaten akzeptieren

genau alle regul¨aren Sprachen. einige nicht-regul¨are Sprachen (mit Nachweis):  n {an b n | n ∈ }, Palindromsprachen, a(2 ) | n ∈ Anwendung z.B. bei Suche nach Zeichenketten, lexikalischer Analyse im Compiler

N

N

130

WH: Algorithmische L¨osungen f¨ur regul¨are Sprachen alle Sprachen in Eingaben endlich beschrieben, z.B. als NFA Wortproblem Eingabe: (L, w ), Ausgabe: ja, falls w ∈ L, sonst nein (Suche nach mit w markiertem Pfad im Automatengraphen) Leerheit Eingabe: L, Ausgabe: ja, falls L = ∅, sonst nein (Erreichbarkeit akzeptierender Zust¨ande in NFA f¨ ur L) Vollst¨andigkeit Eingabe: L, Ausgabe: ja, falls L = X ∗ , sonst nein (Erreichbarkeit im Automaten f¨ ur L) Endlichkeit Eingabe: L, Ausgabe: ja, falls L endlich, sonst nein (Suche nach akzeptierendem Weg mit Schleife) Inklusion Eingabe: L1 , L2 , Ausgabe: ja, falls L1 ⊆ L2 , sonst nein (Test L1 ∩ L2 = ∅) Gleichheit Eingabe: L1 , L2 , Ausgabe: ja, falls L1 = L2 , sonst nein ? (isomorphe Minimalautomaten oder Test L1 ∆L2 = ∅) Disjunktheit Eingabe: L1 , L2 , Ausgabe: ja, falls L1 ∩ L2 = ∅, sonst nein 131

Analoge Fragen f¨ur kontextfreie Sprachen Wiederholung: Eine Sprache L ⊆ X ∗ heißt genau dann kontextfrei, wenn f¨ ur eine kontextfreie Grammatik (Chomsky-Typ 2) G gilt L \ {ε} = L(G ). CF: Menge aller kontextfreien Sprachen Unter welchen der Operationen ∪, ∩, , ◦, abgeschlossen?

∗, R

ist die Menge CF

Gibt es ein passendes Maschinenmodell f¨ ur kontextfreie Sprachen? Wie zeigt man, dass eine Sprache nicht kontextfrei ist? Gibt es algorithmische L¨ osungen f¨ ur die folgenden Probleme f¨ ur kontextfreie Sprachen: I

Wortproblem

I

Leerheit, Vollst¨andigkeit, Endlichkeit

I

Inklusion, Gleichheit, Disjunktheit 132

Kontextfreie Grammatiken – Wiederholung Grammatik G = (N, T , P, S) vom Chomsky-Typ 2 Alle Regeln in P haben die Form l → r mit l ∈ N und r ∈ (N ∪ T )+ Grammatik G = (N, T , P, S) erzeugt die Sprache L(G ) = {w ∈ T ∗ | S →∗P w }

I

Syntax regul¨arer (arithmetischer, logischer) Ausdr¨ ucke

I

Syntax von Programmiersprachen (zusammengesetzte Ausdr¨ ucke und Anweisungen)

133

Ableitungsb¨aume f¨ur kontextfreie Grammatiken Beispiel: Grammatik G = (N, T , P, E ) mit N = {E , F }, T = {a, b, c, (, ), +, ∗}, P = {E → (E + E ), E → F ∗ F , F → E , E → a, E → b, E → c} Ableitung f¨ ur w = (c ∗ a + (b + a ∗ a)) allgemein: Grammatik G = (N, T , P, S) Ableitung S →P w1 →P w2 →P · · · →P wn = w f¨ ur w in G Ableitungsbaum zu einem Wort w in der kontextfreien Grammatik G (induktive Definition): I

Wurzel mit Markierung S

I

f¨ ur jeder Anwendung einer Regel A →P r1 · · · rn : Verzweigung bei Symbol A in n Kinder mit Markierungen r1 . . . , rn

I

Markierung der Bl¨atter (von links nach rechts): Wort w

Ein Ableitungsbaum repr¨asentiert i.A. mehrere Ableitungen. 134

Rechts- und Linksableitungen Eine Ableitung f¨ ur w in G heißt Linksableitung , falls in jedem Schritt das am weitesten links stehende Nichtterminal Rechtsableitung , falls in jedem Schritt das am weitesten rechts stehende Nichtterminal ersetzt wird.

Zu jedem Ableitungsbaum f¨ ur w in G existieren I

genau eine Linksableitung f¨ ur w in G und

I

genau eine Rechtsableitung f¨ ur w in G .

135

Mehrdeutige kontextfreie Grammatiken Grammatik G heißt eindeutig , falls f¨ ur jedes Wort w ∈ L(G ) genau ein Ableitungsbaum in G existiert. mehrdeutig , sonst. Beispiel: Grammatik G = (N, T , P, E ) mit N = {S}, T = {a} und P = {S → SS, S → a} f¨ ur w = aaa Eindeutigkeit von Grammatiken ist wichtig beim Entwurf von Programmiersprachen (Syntax) dangling else“-Problem: ” ::= if then ::= if then else Was bedeutet: if C1 then if C2 then A else B 136

Inh¨arent mehrdeutige Sprachen

Sprachen L, f¨ ur die keine eindeutige Grammatik G mit L = L(G ) existieren, heißen inh¨arent mehrdeutig.

Fakt Die Sprache L = {al b m c n | l, m, n > 0 ∧ (l = m ∨ m = n)} ist inh¨arent mehrdeutig.

137

Was bisher geschah REG: Menge aller regul¨aren Sprachen (Chomsky-Typ 3) I abgeschlossen unter ∪, ∩, , ◦, ∗ , R I Wortproblem algorithmisch entscheidbar (Suche im Automaten-Graphen) I Beschreibung durch I I I

regul¨are Grammatiken NFA (Maschinenmodell) regul¨are Ausdr¨ ucke

prominente nicht-regul¨are Sprachen (Nachweis):  n {an b n | n ∈ }, Palindromsprachen, a(2 ) | n ∈ CF: Menge aller kontextfreien Sprachen (Chomsky-Typ 2) I Ableitungsbaum eines Wortes in einer kontextfreien Grammatik I eindeutige/mehrdeutige Grammatiken I inh¨ arent mehrdeutige Sprachen Beispiel: L = {al b m c n | l, m, n > 0 ∧ (l = m ∨ m = n)} I

N

N

138

Abschlusseigenschaften von CF Satz Sind L1 und L2 kontextfreie Sprachen, dann sind auch I

L1 ∪ L2

I

L1 ◦ L2

I

L∗1

kontextfreie Sprachen. Konstruktionen f¨ ur Li = L(Gi ) mit Gi = (Ni , Ti , Pi , Si ) f¨ ur i ∈ {1, 2}, wobei N1 ∩ N2 = ∅ (falls n¨ otig, umbenennen) neues Nichtterminal S 0 6∈ N1 ∪ N2 L1 ∪ L2 = L(G∪ ) mit G∪ = (N1 ∪ N2 ∪ {S 0 }, T1 ∪ T2 , P∪ , S 0 ), wobei P∪ = P1 ∪ P2 ∪ {S 0 → S1 , S 0 → S2 } L1 ◦ L2 = L(G◦ ) mit G◦ = (N1 ∪ N2 ∪ {S 0 }, T1 ∪ T2 , P◦ , S 0 ), wobei P◦ = P1 ∪ P2 ∪ {S 0 → S1 S2 } L∗1 = L(G∗ ) mit G∗ = (N1 ∪ {S 0 }, T1 , P∗ , S 0 ) , wobei P∗ = P1 ∪ {S 0 → ε, S 0 → S1 S 0 } Beispiel (Tafel): L1 = {ai b i | i ∈

N \ {0}} und L2 = {ww R | w ∈ {a, b}∗}

139

Erreichbare und erzeugende Nichtterminale kontextfreie Grammatik G = (N, T , P, S) Nichtterminal A ∈ N heißt erreichbar aus B ∈ N, falls ∃u, v ∈ (N ∪ T )∗ : B →∗P uAv erreichbar in G falls A aus Startsymbol S erreichbar ist erzeugend falls ∃w ∈ T ∗ : A →∗P w Beispiel: Grammatik G = (N, T , P, S) mit N = {S, A, B, C , D, E }, T = {a, b, c}, P = {S → AB, A → C , A → a, D → ScA, B → b, C → BbC }

erreichbar aus S sind S, A, B, C

erzeugend sind S, A, B, D 140

Eliminierung nutzloser Nichtterminale gegeben: kontextfreie Grammatik G = (N, T , P, S) induktive Bestimmung aller erzeugenden Nichtterminale aus N: M0 = {A | (A → w ) ∈ P ∧ w ∈ T ∗ } Mi+1 = Mi ∪ {A | (A → w ) ∈ P ∧ w ∈ (T ∪ Mi )∗ } Es gibt ein n ∈

N : Mn = Mn+1, Mn enth¨alt alle erzeugenden NT

Eliminierung aller nicht-erzeugenden NT: L¨oschen aller Regeln, die nicht-erzeugende NT enthalten induktive Bestimmung aller aus S erreichbaren Nichtterminale: M00 = {S} 0 Mi+1 = Mi0 ∪ {A | (B → uAv ) ∈ P ∧ B ∈ Mi0 ∧ u, v ∈ (N ∪ T )∗ }

Es gibt ein n ∈

0 N : Mn0 = Mn+1 , Mn0 enth¨alt alle erreichbaren NT

Eliminierung aller nicht-erreichbaren NT: L¨oschen aller Regeln, die nicht-erreichbare NT enthalten 141

Reduzierte kontextfreie Grammatiken reduzierte Grammatik enth¨alt nur erreichbare und erzeugende Nichtterminale

Fakt Zu jeder kontextfreien Grammatik existiert eine ¨aquivalente reduzierte Grammatik. Erzeugung einer reduzierten Grammatik aus beliebiger kontextfreier Grammatik G : nacheinander in dieser Reihenfolge: 1. G 0 entsteht durch Eliminierung aller nicht-erzeugenden Nichtterminale in G , 2. G 00 entsteht durch Eliminierung aller nicht-erreichbaren Nichtterminale in G 0 G 00 ist reduziert und ¨aquivalent zu G . 142

Kettenregeln Kettenregel Regel l → r mit l ∈ N und r ∈ N Beispiel: G = ({A, B, S}, {0, 1}, P, S) mit P = {S → 0S0, S → 00, S → A, A → 1A, A → B, B → 1} Eliminierung der Kettenregeln aus G = (N, T , P, S): I

induktive Bestimmung aller Ketten-Paare M0 = {(A, A) | A ∈ N} Mi+1 = Mi ∪ {(A, C ) | (A, B) ∈ Mi ∧ (B → C ) ∈ P}

N

I

Es existiert ein n ∈ mit Mn = Mn+1 . P 0 = {A → w | (A, B) ∈ Mn ∧ (B → w ) ∈ P ∧ w 6∈ N} I

I

Hinzuf¨ ugen aller Nicht-Kettenregeln A → w , f¨ ur welche P eine Regel B → w enth¨alt und (A, B) ∈ Mn (Ketten-Paar) L¨ oschen aller Kettenregeln

Die so erzeugte Grammatik G 0 ist ¨aquivalent zu G . 143

Chomsky-Normalform Kontextfreie Grammatiken G = (N, T , P, S) mit ∀(l → r ) ∈ P : r ∈ (N 2 ∪ T ) heißen in Chomsky-Normalform. (bin¨are Ableitungsb¨aume)

Satz Zu jeder kontextfreien Grammatik G mit ε 6∈ L(G ) existiert eine ¨aquivalente Grammatik in Chomsky-Normalform. Konstruktion: 1. ε-Regeln und Kettenregeln eliminieren 2. N 0 = N ∪ {Xc | c ∈ T } mit neuem Nichtterminalen {Xc | c ∈ T } ∩ N = ∅ P 0 = P ∪ {Xc → c | c ∈ T } Ersetzung jedes Terminals c in jeder rechten Regelseite r mit |r | > 1 durch Xc 3. Ersetzung jeder Regel A → B1 . . . Bn in P 0 mit n > 2 durch die folgenden n − 1 Regeln: A → B1 C2 , . . . , Ci → Bi Ci+1 , . . . , Cn−1 → Bn−1 Bn mit neuen Nichtterminalen Ci 144

Was bisher geschah regul¨are Sprachen: I endliche Repr¨ asentation durch I I I

regul¨are Grammatiken NFA (DFA, ε-NFA, . . . ) regul¨are Ausdr¨ ucke ∗, R

I

abgeschlossen unter ∪, ∩, , ◦,

I

algorithmische Entscheidbarkeit von ?

Wortproblem w ∈ L (O(|w |)), Leerheit, Endlichkeit, Gleichheit usw. kontextfreie Sprachen: I repr¨ asentiert durch I

I

kontextfreie Grammatiken (reduziert, Chomsky-NF)

abgeschlossen unter ∪, ◦,

∗, R

145

Wortproblem f¨ur kontextfreie Sprachen Eingabe:

kontextfreie Grammatik G = (N, T , P, S) (in Chomsky-Normalform) Wort w = w1 . . . wn ∈ T ∗ Ausgabe: ja, falls w ∈ L(G ), sonst nein Beispiel: G = ({S, A, B}, {a, b, c}, P, S) mit P = {S → SA, S → a, A → BS, B → BB, B → BS, B → b, B → c} abc 6∈ L(G ), abacba ∈ L(G ),

Idee: I

f¨ ur jedes Teilwort wi . . . wj Suche nach Nichtterminal, welches wi . . . wj erzeugt,

I

Beginn bei Teilworten der L¨ange 1

I

alle Zerlegungen von wi . . . wj in zwei Teilworte testen 146

CYK-Algorithmus (Cocke, Younger, Kasami) l¨ost Wortproblem f¨ ur kontextfreie Sprachen in O(|w |3 ) induktive Berechnung der Mengen Ni,j = {A ∈ N | A →∗P wi . . . wj } durch die Rekursionsgleichung:  {A | A → wi ∈ P} falls i = j S Ni,j = {A | A → BC ∈ P ∧ B ∈ N ∧ C ∈ N } falls i < j i,k k+1,j i≤k≤j−1

dynamische Programmierung: Tabelle (Tafel)

Fakt w ∈ L(G ) gilt genau dann, wenn S ∈ N1,|w | gilt.

147

Nicht-kontextfreie Sprachen Die Grammatik G = ({A, B, C }, {a, b, c}, P, A) mit   A → aABC ,        A → aBC ,          CB → BC ,   aB → ab, P=     bB → bb,           bC → bc,     cC → cc erzeugt die Sprache L(G ) = {an b n c n | n > 0}. (Chomsky-Typ 1, kontextsensitiv)

Fakt Die Sprache L = {an b n c n | n > 0} ist nicht kontextfrei. 148

Pumping-Lemma f¨ur kontextfreie Sprachen Sprache L ⊆ X ∗ hat die CF-Pump-Eigenschaft gdw. ∃ n ∈ ∀ w ∈ L (|w | ≥ n → ∃ u, v , x, y , z ∈ X ∗ (w = uvxyz ∧ |vxy | ≤ n ∧ |vy | ≥ 1 → ∀ i ∈ : uv i xy i z ∈ L n heißt hier Pumping-Konstante.

N

N

Satz (Pumping-Lemma f¨ur CF) Jede kontextfreie Sprache hat die CF-Pump-Eigenschaft. Ausf¨ uhrlichere Formulierung desselben Satzes:

Satz (Pumping-Lemma f¨ur CF) F¨ ur jede kontextfreie Sprache L existiert eine Zahl n ∈ (Pumping-Konstante), so dass f¨ ur jedes Wort w ∈ L mit |w | ≥ n eine Zerlegung w = uvxyz existiert mit u, v , x, y , z ∈ X ∗ , |vy | ≥ 1, |vxy | ≤ n und f¨ ur jede Zahl i ∈ gilt uv i xy i z ∈ L.

N

N

149

Beispiele nicht-kontextfreier Sprachen I

{an b n c n | n ∈

I {an b m an b m

N}

| m, n ∈

{a, b, c}∗

I

{w ∈

I

{ww | w ∈ {a, b}∗ } k {a(2 ) | k ∈ }

I

N}

| |w |a = |w |b = |w |c }

N

Das Pumping-Lemma f¨ ur kontextfreie Sprachen ist geeignet, um zu zeigen, dass eine Sprache nicht kontextfrei ist. ABER: Es gibt nicht-kontextfreie Sprachen mit CF-Pump-Eigenschaft, ¨ z.B. L = {aj b k c l d m | j = 0 ∨ k = l = m} (UA)

150

Abschlusseigenschaften von CF schon gezeigt: Sind L1 und L2 kontextfreie Sprachen, dann sind auch I

L1 ∪ L2

I

L1 ◦ L2

I

L∗1

kontextfreie Sprachen. Die Menge aller kontextfreien Sprachen ist nicht abgeschlossen unter I

Schnitt ∩, Gegenbeispiel: L1 = {ai b i c k | i, k > 0} ∈ CF und L2 = {ai b k c k | i, k > 0} ∈ CF, aber L1 ∩ L2 = {ai b i c i | i > 0} 6∈ CF

I

Komplement

(Warum ?) 151

Was bisher geschah regul¨are Sprachen (Chomsky-Typ 3): endliche Repr¨asentation durch I regul¨ are Grammatiken I NFA (DFA, ε-NFA, . . . ) I regul¨ are Ausdr¨ ucke I abgeschlossen unter ∪, ∩, , ◦, ∗ , R I nicht-regul¨ are Sprachen, z.B. {an b n | n ∈ }, 2 {w ∈ {a, b}∗ | w = w R }, {a(n ) | n ∈ } I algorithmische Entscheidbarkeit des Wortproblems (O(|w |)), sowie Leerheit, Endlichkeit, Gleichheit usw. regul¨arer Sprachen I

N

N

kontextfreie Sprachen (Chomsky-Typ 2): I I I I I

repr¨asentiert durch kontextfreie Grammatiken (Chomsky-NF) abgeschlossen unter ∪, ◦, ∗ , R , aber nicht abgeschlossen unter ∩ und nicht-kontextfreie Sprachen, z.B. {an b n c n | n ∈ }, 2 {ai b j c k d l | i = 0 ∨ j = k = l}, {a(n ) | n ∈ } Pump-Eigenschaft, Pumping-Lemma f¨ ur kontextfreie Sprachen Wortproblem algorithmisch entscheidbar (CYK, O(|w |3 ))

N

N

152

Maschinenmodelle Definition (endliche Beschreibung) durch interne Steuerung (z.B. endliche Menge von Zust¨anden) I externen Speicher mit speziellen Zugriffsm¨ oglichkeiten I Typ des Speicherinhaltes (z.B. endliches Wort u ¨ber endlichem Alphabet) I Zugriffsmethode (z.B. Lesen / Schreiben, einmal / wiederholt, feste Reihenfolge) I

Konfigurationen (Momentaufnahmen) ¨ und endliche Menge zul¨assiger lokaler Uberg¨ ange zwischen Konfigurationen schrittweise Berechnung : Folge von Konfigurationen von einer Startkonfiguration u uberg¨ange ¨ber zul¨assige Konfigurations¨ Akzeptanz einer Eingabe durch akzeptierende Berechnung: endliche Konfigurationenfolge zu einer akzeptierenden Konfiguration 153

Definition des Maschinenmodells NFA algorithmische L¨osung des Wortproblems w ∈ L f¨ ur regul¨are Sprachen L (gegeben durch NFA A mit L = L(A)) NFA A = (X , Q, δ, I , F ) als abstrakte Maschine: externer Speicher Eingabeband aus einzelnen linear angeordneten Speicherzellen (enth¨alt ein Wort w ∈ X ∗ , jede Zelle ein Symbol aus dem Alphabet ) interner Speicher enth¨alt Zustand aus Q Steuerelement Zugriff auf I Eingabeband (externer Speicher): Lesen Bewegung in jedem Schritt eine Zelle nach rechts I Zustand (interner Speicher): Lesen und Schreiben 154

Arbeitsweise des Maschinenmodells NFA

Start Steuerelement (Lesekopf) in einem Startzustand u ¨ber der ersten Zelle des Eingabewortes Schritt I NFA liest Zeichen in der Zelle unter dem Lesekopf I Zustands¨ ubergang im Steuerelement ¨ (entsprechend Ubergangsrelation und gelesenem Symbol) I Lesekopf bewegt sich zur rechten Nachbarzelle Ende Lesekopf auf Zelle ohne Eingabesymbol NFA akzeptiert das Eingabewort, falls akzeptierender Zustand im internen Speicher

155

Konfigurationen eines NFA NFA A = (X , Q, δ, I , F ) Konfiguration (q, w ) mit aktuellem Zustand q ∈ Q und ungelesenem Teil des Eingabewortes w ∈ X ∗ Startkonfiguration (s, u) mit Startzustand s ∈ I und Eingabewort u ∈ X ∗ Akzeptierende Konfiguration (f , ε) mit akzeptierendem Zustand f ∈ F Folgekonfiguration zur Konfiguration (p, aw ) mit a ∈ X und w ∈ X ∗ : Konfiguration (q, w ) mit (p, q) ∈ δ(a) Notation: (p, aw ) ` (q, w ) Berechnung f¨ ur Eingabewort w ∈ X ∗ in A: Folge ((q0 , u0 ), . . . , (qn , un )) von Konfigurationen, wobei f¨ ur alle i ∈ {0, . . . , n − 1} gilt (qi , ui ) ` (qi+1 , ui+1 ) akzeptierende Berechnung f¨ ur Eingabewort w ∈ X ∗ in A: Berechnung f¨ ur w mit Endkonfiguration (qn , vn ) = (f , ε) (analog zu akzeptierendem Pfad f¨ ur w in A) 156

Beispiel A = ({a, b}, {0, 1, 2}, δ, {0}, {2}) mit δ(a) = {(0, 0), (1, 2)} und δ(b) = {(0, 1), (2, 2)} b

a b

0

1

a

2

Eingabewort aabab Startkonfiguration (0, aabab) Endkonfiguration (2, ε) akzeptierende Berechnung f¨ ur Eingabewort aabab in A: (0, aabab) ` (0, abab) ` (0, bab) ` (1, ab) ` (2, b) ` (2, ε) Man bemerke die Analogie zum akzeptierenden Pfad a

a

b

a

b

0→0→0→1→2→2 f¨ ur aabab in A

157

Maschinenmodelle und Algorithmen I

endliche Beschreibung

I

schrittweise Bearbeitung

I

(Ergebnis nach endlich vielen Schritten)

Jede abstrakte Maschine f¨ uhrt einen Algorithmus aus. (z.B. zur L¨ osung des Wortproblems (L, w ) f¨ ur regul¨are Sprachen L) verschiedene Maschinenmodelle unterscheiden sich in I

Art und Kapazit¨at des internen und externen Speichers

I

Art des Zugriffs auf internen und externen Speicher

I

Reihenfolge der Zugriffe (einmalig, wiederholt)

I

Determinismus

Maschinen definieren Sprachen: Menge aller Eingaben mit akzeptierenden Berechnungen Maschinenmodelle definieren Sprachklassen: Menge aller durch eine solche Maschine definierten Sprachen 158

Kellerautomaten – Motivation L = {wcw R | w ∈ {a, b}∗ } ist kontextfrei, aber nicht regul¨ar (nicht NFA-akzeptierbar). gesucht: (einfaches) Maschinenmodell, welches die Sprache L akzeptiert Maschine ben¨otigt Speicher f¨ ur Reihenfolge der Symbole in w , um auf diese in umgekehrter Reihenfolge zugreifen zu k¨onnen (LIFO) geeignete Datenstruktur f¨ ur Speicher mit dieser Eigenschaft: Stack (Keller) Kellerautomat (pushdown automaton, PDA): ¨ Erweiterung von NFA (mit ε-Uberg¨ angen) um internen Speicher (vom Typ Keller, Stack) 159

Kellerautomaten (PDA) – Definition nichtdeterministischer Kellerautomat (PDA) A = (X , Q, Γ, δ, q0 , F , ⊥) mit X Alphabet (endlich, nichtleer) Q Menge von Zust¨anden (endlich, nichtleer) Γ Kelleralphabet (endlich, nichtleer) q0 ∈ Q Startzustand F ⊆ Q Menge der akzeptierenden Zust¨ande δ : (X ∪ {ε}) → (Q × Q × Γ × Γ∗ ) ¨ f¨ ur jedes s ∈ X ∪ {ε} eine Ubergangsrelation ¨ (mit Anderung des Kellerinhaltes) ⊥ ∈ Γ Kellerboden-Symbol

160

PDA – Beispiel PDA A = ({a, b, c}, {q0 , p, q}, {⊥, A, B}, δ, q0 , {q}, ⊥) mit δ(a) = {(q0 , q0 , K , AK ), (p, p, A, ε)} mit K ∈ {⊥, A, B} δ(b) = {(q0 , q0 , K , BK ), (p, p, B, ε)} mit K ∈ {⊥, A, B} δ(c) = {(q0 , p, K , K )} mit K ∈ {⊥, A, B} δ(ε) = {(p, q, ⊥, ⊥)} a: b:

K | AK K | BK

q0

a: b:

c :K |K

A|ε B|ε

p

ε:⊥|⊥

q

mit K ∈ {⊥, A, B}

161

PDA – Konfigurationen Konfiguration (q, w , k) ∈ Q × X ∗ × Γ∗ mit I

Zustand q ∈ Q

I

(noch zu lesendes) Eingabewort w ∈ X ∗

I

Kellerinhalt k ∈ Γ∗

I

Startkonfigurationen (q0 , w , ⊥) mit w ∈ X ∗ beliebig

I

¨ Ubergang zwischen Konfigurationen: (p, aw , Gk) ` (q, w , k 0 k) mit (p, q, G , k 0 ) ∈ δ(a) f¨ ur k ∈ Γ∗ 0 0 und (p, w , Gk) ` (q, w , k k) mit (p, q, G , k ) ∈ δ(ε) f¨ ur k ∈ Γ∗

I

akzeptierende Konfigurationen (q, ε, k) mit q ∈ F , k ∈ Γ∗

akzeptierende Berechnung (Konfigurationenfolge) f¨ ur w in A: Folge (q0 , w0 , k0 ) ` · · · ` (qn , wn , kn ) von Konfigurationen mit I

(q0 , w0 , k0 ) eine Startkonfiguration mit w0 = w

I

(qn , wn , kn ) eine akzeptierende Konfiguration mit wn = ε

I

f¨ ur jedes i ∈ {1, . . . , n} gilt (qi−1 , wi−1 , ki−1 ) ` (qi , wi , ki ) 162

Von PDA akzeptierte Sprachen PDA A = (X , Q, Γ, δ, q0 , F , ⊥) akzeptiert das Wort w ∈ X ∗ gdw. eine akzeptierende Berechnung (Konfigurationenfolge) mit der Startkonfiguration (q0 , w , ⊥) existiert. PDA A = (X , Q, Γ, δ, q0 , F , ⊥) akzeptiert die Sprache L(A) = {w ∈ X ∗ | A akzeptiert w }

Sprache L heißt PDA-akzeptierbar gdw. ein PDA A mit L = L(A) existiert. PDA A und B heißen ¨aquivalent gdw. L(A) = L(B)

163

PDA-Akzeptanz – Beispiel PDA A = ({a, b}, {q0 , p, q}, {⊥, x}, δ, q0 , {q}, ⊥) mit δ(a) = {(q0 , q0 , K , xK )} f¨ ur K ∈ {x, ⊥} δ(b) = {(p, p, x, ε)} δ(ε) = {(q0 , p, K , K ), (p, q, ⊥, ⊥)} mit K ∈ {x, ⊥} a : K | xK

q0

b:x |ε ε:K |K

p

ε:⊥|⊥

q

f¨ ur K ∈ {x, ⊥} A akzeptiert das Wort aabb u ¨ber die Konfigurationenfolge (q0 , aabb, ⊥) ` (q0 , abb, x⊥) ` (q0 , bb, xx⊥) ` (p, bb, xx⊥) ` (p, b, x⊥) ` (p, ε, ⊥) ` (q, ε, ⊥) und ε u ¨ber die Konfigurationenfolge (q0 , ε, ⊥) ` (p, ε, ⊥) ` (q, ε, ⊥) aber nicht abb, aba Es gilt L(A) = {an b n | n ∈ } Damit ist die Sprache {an b n | n ∈ } PDA-akzeptierbar.

N

N

164

Deterministische PDA PDA A = (X , Q, Γ, δ, q0 , F , ⊥) heißt deterministisch (DPDA) gdw. ∀a ∈ X ∀q ∈ Q ∀K ∈ Γ : |{(p, B) | (q, p, K , B) ∈ δ(a) ∪ δ(ε)}| ≤ 1 Sprache L heißt deterministisch kontextfrei gdw. ein deterministischer PDA A mit L = L(A) existiert. Beispiele: I

L = {an b n | n ∈

I L0

N} ist deterministisch kontextfrei,

= ∈ {a, b}∗ | w ∈ {a, b}∗ } ist deterministisch kontextfrei,

I

{wcw R

L00 = {waw R ∈ {a, b}∗ | w ∈ {a, b}∗ } nicht.

Die Menge aller durch deterministische PDA akzeptierbaren Sprachen ist eine echte Teilmenge der Menge aller durch PDA akzeptierbaren Sprachen. 165

PDA – Akzeptanz durch leeren Keller alternative Akzeptanzbedingung akzeptierende Konfigurationen: (q, ε, ε) mit q ∈ Q beliebig Angabe akzeptierender Zust¨ande u ussig ¨berfl¨ n n Beispiel: L = {a b | n ∈ } ist PDA-akzeptierbar durch PDA A = ({a, b}, {q0 , p}, {⊥, x}, δ, q0 , ⊥) mit δ(a) = {(q0 , q0 , K , xK )} f¨ ur K ∈ Γ δ(b) = {(p, p, x, ε)} δ(ε) = {(q0 , p, K , K ), (q0 , p, ⊥, ε), (p, p, ⊥, ε)} f¨ ur K ∈ {x, ⊥}

N

b: ε:

a : K | xK

q0

ε: ε:

K |K ⊥|ε

x |ε ⊥|ε

p

f¨ ur K ∈ {x, ⊥} 166

Akzeptanzbedingungen f¨ur PDA zwei M¨ oglichkeiten zur Definition akzeptierender Konfigurationen: 1. Akzeptanz durch akzeptierenden Zustand (analog NFA): (q, ε, k) mit q ∈ F und k ∈ Γ∗ beliebig 2. Akzeptanz durch leeren Keller: (q, ε, ε) mit q ∈ Q beliebig Beispiel: Die Sprache L = {an b n | n ∈

N} wird

durch akzeptierende Zust¨ande akzeptiert durch den PDA A = ({a, b}, {q0 , p, q}, {⊥, x}, δ, q0 , {q}, ⊥) mit a : K | xK

q0

b:x |ε ε:K |K

p

ε:⊥|⊥

q

mit leerem Keller akzeptiert durch den PDA B = ({a, b}, {q0 , p, q}, {⊥, x}, δ, q0 , ⊥) mit a : K | xK ε: ε: q0

b: ε: K |K ⊥|ε

x |ε ⊥|ε

p

f¨ ur K ∈ {x, ⊥} 167

¨ Aquivalenz beider Akzeptanzbedingungen Satz 1. Zu jedem PDA mit akzeptierenden Zust¨anden existiert ein ¨aquivalenter PDA, der mit leerem Keller akzeptiert. 2. Zu jedem PDA, der mit leerem Keller akzeptiert, existiert ein ¨aquivalenter PDA mit akzeptierenden Zust¨anden. Idee (PDA-Transformationen): 1. PDA mit akzeptierenden Zust¨anden → PDA mit leerem Keller: neues Kellerboden-Symbol und neuen Endzustand hinzuf¨ ugen, urspr¨ unglicher Automat arbeitet dar¨ uber“, ” ¨ ¨ nach Ubergang in einen akzeptierenden Zustand ε-Uberg¨ ange in diesem akzeptierenden Zustand zum Entfernen aller restlichen Kellersymbole 2. PDA mit leerem Keller → PDA mit akzeptierenden Zust¨anden: neuen (einzigen) akzeptierenden Zustand hinzuf¨ ugen, ¨ f¨ ur jeden Ubergang in eine Konfiguration mit leerem Keller einen ¨ Ubergang in diesen akzeptierenden Zustand hinzuf¨ ugen. 168

Unendliche Konfigurationsfolgen ¨ Automaten mit ε-Uberg¨ angen erlauben unendliche Konfigurationsfolgen bei endlichen W¨ ortern. Beispiele: I

ε-NFA A = ({a}, {0, 1}, δA , {0}, {1}) mit δA (a) = {(0, 1)}, δA (ε) = {(0, 0), (1, 0)}

I

PDA B = ({a}, {0, 1}, {⊥, X }, δB , {0}, {0}, ⊥) mit δA (a) = {(0, 1, ⊥, ⊥), (0, 1, X , X )}, δA (ε) = {(0, 0, ⊥, X ⊥), (0, 0, X , XX ), (1, 0, X , ε)}

Akzeptierende Konfigurationsfolgen f¨ ur endliche W¨orter sind immer endlich. Deshalb sind unendliche Konfigurationsfolgen f¨ ur die Definition von Sprachen und Sprachklassen endlicher W¨ orter durch endliche Automaten irrelevant. 169

Schnitt PDA-akzeptierbarer mit regul¨aren Sprachen Satz I

Sind L eine PDA-akzeptierbare und L0 eine regul¨are Sprache, dann ist die Sprache L ∩ L0 PDA-akzeptierbarer.

I

Sind L eine durch einen DPDA-akzeptierbare und L0 eine regul¨are Sprache, dann ist die Sprache L ∩ L0 durch einen DPDA akzeptierbarer.

gegeben: PDA A = (X , QA , Γ, δA , iA , FA , ⊥) mit L = L(A) (akzeptiert mit Zust¨anden) DFA B = (X , QB , δB , iB , FB ) mit L0 = L(B)

N

Beispiel: Dyck-Sprache ∩ a∗ b ∗ = {an b n | n ∈ } Produktkonstruktion: PDA C = (X , QA × QB , Γ, δ, (iA , iB ), FA × Fb , ⊥) mit   (pA , qA , G , k) ∈ δA (a) ∀a ∈ X : δ(a) = ((pA , pB ), (qA , qB ), G , k) | ∧(pB , qB ) ∈ δB (a) δ(ε)

= {((pA , pB ), (qA , pB ), G , k) | (pA , qA , G , k) ∈ δA (ε)} 170

Kontextfreie Grammatiken und PDA Satz Die Menge aller kontextfreien (d.h. durch eine kontextfreie Grammatik erzeugten) Sprachen ist genau die Menge aller PDA-akzeptierbaren Sprachen.

1. Konstruktion eines PDA A zu einer gegebenen kontextfreien Grammatik G mit L(A) = L(G ) 2. Konstruktion einer kontextfreien Grammatik G zu einem gegebenen PDA A mit L(A) = L(G ) (Konstruktionen auf den folgenden Folien, im WS2016/17 nicht besprochen)

171

Kontextfreie Grammatik → PDA Beispiel: Lukasiewicz-Sprache erzeugt durch die Grammatik G = ({S}, {a, b}, P, S) mit P = {S → a, S → bSS}

Lemma Zu jeder kontextfreien Grammatik G existiert ein PDA A mit L(A) = L(G ). gegeben: kontextfreie Grammatik G = (N, X , P, S) Idee: Tiefensuche im Ableitungsbaum (Linksableitung) PDA A = (X , {q}, N ∪ X , δ, q, S) mit δ(ε) ∀a ∈ X : δ(a)

= {(q, q, B, w ) | B → w ∈ P} = {(q, q, a, ε)}

akzeptiert mit leerem Keller F¨ ur den so konstruierten PDA A gilt L(A) = L(G ). Nachweis: Eindeutige Zuordnung zwischen Linksableitungen S → u 1 A1 v 1 → u 1 u 2 A2 v 2 → · · · → u 1 . . . u m−1 Am−1 v m−1 → w = u 1 . . . u m und akzeptierenden Berechnungen f¨ ur w = u 1 . . . u m (q, w , S) ` `

(q, u 1 . . . u m , u 1 A1 v 1 ) ` · · · ` (q, u 2 . . . u m , A1 v 1 ) (q, u 2 . . . u m , u 2 A2 v 2 ) ` · · · ` (q, u m , u m ) ` · · · ` (q, ε, ε)

172

PDA → kontextfreie Grammatik Beispiel: PDA A = ({a, b}, {q}, {X , ⊥}, δ, q, ⊥} (LK-Akzeptanz) mit δ(a) = {(q, q, X , XX )(q, q, ⊥, X ⊥)}, δ(b) = {(q, q, X , ε)} und δ(ε) = {(q, q, ⊥, ε)}

Lemma Zu jedem PDA A existiert eine kontextfreie Grammatik G mit L(A) = L(G ). Nacheinanderausf¨ uhrung der Konstruktionen PDA → kontextfreie Grammatik → PDA f¨ uhrt zur folgenden Aussage:

Folgerung Zu jedem PDA existiert ein ¨aquivalenter PDA mit einem Zustand, der mit leerem Keller akzeptiert. 173

PDA → kontextfreie Grammatik (Vorbereitung) Fakt Jeder PDA A = (X , Q, Γ, δ, q0 , ⊥) (LK-Akzeptanz) ist ¨aquivalent zu einem PDA B = (X , Q 0 , Γ0 , δ 0 , q00 , ⊥0 ) (LK-Akzeptanz) mit der Eigenschaft ∀a ∈ X ∪ {ε} ∀(p, q, G , w ) ∈ δ 0 (a) : |w | ≤ 2 Konstruktion: f¨ ur jedes a ∈ x ∪ {ε} ¨ Ersetzung jedes Uberganges (p, q, G , w ) ∈ δ(a) f¨ ur w = w1 . . . wn mit n > 2 durch die Regeln (p, p1 , G , wn−1 wn ) ∈ δ(a) (p1 , p2 , wn−1 , wn−2 wn−1 ) ∈ δ(ε) .. . (pn−1 , q, w2 , w1 w2 ) ∈ δ(ε) mit neu hinzugef¨ ugten Zust¨anden p1 , . . . , pn−1 174

PDA → kontextfreie Grammatik (Idee) gegeben: PDA A = (X , Q, Γ, δ, q0 , ⊥) (LK-Akzeptanz) mit ∀a ∈ X ∪ {ε} ∀(p, q, G , w ) ∈ δ(a) : |w | ≤ 2 Ziel: Konstruktion einer kontextfreien Grammatik G = (N, X , P, S), so dass die Linksableitungen in G genau den akzeptierenden Berechnungen in A entsprechen. akzeptierende Berechnung f¨ ur w in A: (q0 , w , ⊥) ` · · · ` (q, ε, ε) m¨ogliche Konfigurations¨ uberg¨ange in A: I

oberes Kellersymbol l¨ oschen (p, q, A, ε) ∈ δ(a) f¨ ur a ∈ X ∪ {ε} entspricht Grammatikregel (p, A, q) → a

I

oberes Kellersymbol durch genau ein neues ersetzen (p, q, A, B) ∈ δ(a) f¨ ur a ∈ x ∪ {ε} entspricht Grammatikregel (p, A, q 0 ) → a(q, B, q 0 ) f¨ ur alle q 0 ∈ Q

I

oberes Kellersymbol durch genau zwei neue ersetzen (p, q, A, BC ) ∈ δ(a) f¨ ur a ∈ x ∪ {ε} entspricht Grammatikregel (p, A, q 0 ) → a(q, B, r )(r , C , q 0 ) f¨ ur alle q0, r ∈ Q 175

PDA → kontextfreie Grammatik (Konstruktion) gegeben: PDA A = (X , Q, Γ, δ, q0 , ⊥) (LK-Akzeptanz) mit ∀a ∈ X ∪ {ε} ∀(p, q, G , w ) ∈ δ(a) : |w | ≤ 2 Konstruktion kontextfreier Grammatik G = (N, X , P, S) mit

N =

(Q × Γ × Q) ∪ {S}

P =

{S → (q0 , ⊥, q) | q ∈ Q} ∪ {(p, B, q) → a | (p, q, B, ε) ∈ δ(a)} ∪ {(p, B, q) → a(p 0 , C , q) | (p, p 0 , B, C ) ∈ δ(a) ∧ q ∈ Q} ∪ {(p, B, q) → a(p 0 , C , q)(q, D, q 0 ) | (p, p 0 , B, CD) ∈ δ(a) ∧ q, q 0 ∈ Q}

F¨ ur die so konstruierte Grammatik G gilt L(A) = L(G ). 176

PDA → kontextfreie Grammatik (Beispiel) PDA A = ({a, b}, {q}, {X , ⊥}, δ, q, ⊥} (LK-Akzeptanz) mit δ(a) = {(q, q, X , XX )(q, q, ⊥, X ⊥)}, δ(b) = {(q, q, X , ε)}, δ(ε) = {(q, q, ⊥, ε)} G = (N, X , P, S) zu A mit N = {S, (q, ⊥, q), (q, X , q)}  S → (q, ⊥, q)     wegen (q, q, X , ε) ∈ δ(b)  (q, X , q) → b (q, ⊥, q) → ε wegen (q, q, ⊥, ε) ∈ δ(ε) P =   (q, X , q) → a(q, X , q)(q, X , q) wegen (q, q, X , XX ) ∈ δ(a)    (q, ⊥, q) → a(q, X , q)(q, ⊥, q) wegen (q, q, ⊥, X ⊥) ∈ δ(a)

     

    

177

Was bisher geschah Chomsky-Hierarchie f¨ ur formale Sprachen (definiert u ¨ber Eigenschaften von Grammatiken): I Chomsky-Typ 3: regul¨are Grammatiken / Sprachen I Chomsky-Typ 2: kontextfreie Grammatiken / Sprachen I Chomsky-Typ 1: monotone Grammatiken / kontextsensitive Sprachen I Chomsky-Typ 0: von beliebigen Grammatiken erzeugte Sprachen Maschinenmodelle zur L¨ osung des Wortproblems f¨ ur Sprachen vom: I Chomsky-Typ 3: NFA, DFA, ε-NFA I Chomsky-Typ 2: (nichtdeterministische) PDA (Es gibt durch PDA, aber nicht durch deterministische PDA akzeptierbare Sprachen, z.B. {wav | w .v ∈ {a, b}∗ |w | = |v |}) I Chomsky-Typ 1: ? I Chomsky-Typ 0: ?

178

Kontextsensitive Sprachen Li (Chomsky-Typ 1) erzeugt durch Grammatiken G = (N, T , P, S) mit Regeln der Form l → r , wobei I l ∈ (N ∪ T )+ I r ∈ (N ∪ T )∗ und I |l| ≤ |r | (nichtverk¨ urzend, monoton) n n n Beispiel: {a b c | n > 0} ist I nicht kontextfrei (Pumping-Lemma) I durch Grammatik G = ({A, B, C }, {a, b, c}, P, A) mit   A → aABC ,        A → aBC ,           CB → BC ,  aB → ab, P=     bB → bb,           bC → bc,     cC → cc 179

Linear beschr¨ankter Automat (LBA) – Idee Ziel: Maschinenmodell f¨ ur Sprachen vom Chomsky-Typ 1 Definition (endliche Beschreibung) durch I

externer Speicher: 1. Eingabeband aus Zellen I

I

I

Typ des Speicherinhaltes: endliches Wort u ¨ber endlichem Alphabet (Eingabealphabet) Zugriffsmethode: Lesen Bewegung des Lese-Kopfes auf das rechte Nachbarfeld

interner Speicher: 2. endliche Menge von Zust¨anden (Lesen / Schreiben) 3. Arbeitsband aus Zellen I

I

Typ des Speicherinhaltes: endliches Wort (L¨ ange = L¨ ange des Eingabewortes) u ¨ber endlichem Alphabet (Arbeitsalphabet) Zugriffsmethode: Lesen und Schreiben Bewegung des Lese/Schreib-Kopfes auf ein Nachbarfeld (R/L)

u ¨bliche Vereinfachung der Struktur: Zusammenfassen der B¨ander im internen und externen Speicher zu einem Eingabe- und Arbeitsband (1. und 3.) mit Lese- und Schreib-Zugriff 180

LBA – Definition Linear beschr¨ankter Automat (LBA) M = (X , Q, Γ, δ, q0 , F , 2) mit X endliches Eingabealphabet

Q endliche Menge von Zust¨anden Γ ⊃ X endliches Arbeitsalphabet δ ⊆ (Γ × Q × Γ × Q × {L, R, N}) ¨ Ubergangsrelation q0 Startzustand F akzeptierende Zust¨ande 2 ∈ Γ \ X Leere-Zelle-Symbol (Markierung von Anfang und Ende der Eingabe) LBA M heißt deterministisch gdw. f¨ ur jedes a ∈ Γ und jedes q ∈ Q gilt | {(a, q, b, p, x) | p ∈ Q, b ∈ Γ, x ∈ {L, R, N}} ∩ δ| ≤ 1 181

Konfigurationen eines LBA LBA M = (X , Q, Γ, δ, q0 , F , 2)

Konfiguration uqv ∈ (Γ∗ × q × Γ∗ ) bedeutet: I I I

aktueller Bandinhalt: w = uv aktueller Zustand des LBA: q Schreib-/Lesekopf des LBA zeigt auf erstes Symbol von v (Leere-Zelle-Symbol, falls v = ε)

Startkonfigurationen q0 w mit w ∈ X ∗ akzeptierende Konfigurationen uqv mit q ∈ F Konfigurations¨ uberg¨ange von upv mit u = u 0 a und v = bv 0 : f¨ ur (b, p, c, q, R) ∈ δ : upv ` ucqv 0 f¨ ur (b, p, c, q, L) ∈ δ : upv ` u 0 qacv 0 f¨ ur (b, p, c, q, N) ∈ δ : upv ` uqcv 0

182

Akzeptanz durch LBA LBA M = (X , Q, Γ, δ, q0 , F , 2)

M akzeptiert das Wort w ∈ X ∗ gdw. eine Folge k0 , . . . , kn von Konfigurationen ki ∈ Γ∗ × Q × Γ∗ exisiert, so dass gilt: 1. k0 = q0 w ist die Startkonfiguration mit Eingabe w 2. k0 ∈ Γ∗ × F × Γ∗ ist eine akzeptierende Konfiguration 3. f¨ ur jedes i ∈ {1, . . . , n} ist ki−1 ` ki ein zul¨assiger Konfigurations¨ ubergang M akzeptiert die Sprache L(M) = {w ∈ X ∗ | M akzeptiert w } L ⊆ X ∗ heißt LBA-akzeptierbar gdw. ein LBA M mit L = L(M) existiert. 183

LBA – Beispiel LBA M = ({a, b, c}, {q0 , q1 , q2 , q3 , q4 , q5 , f }, {a, b, c, x, 2}, δ, q0 , {f }, 2) mit  (a, q0 , 2, q1 , R), (a, q1 , a, q1 , R), (x, q1 , x, q1 , R)     (b, q1 , x, q2 , R), (b, q2 , b, q2 , R), (x, q2 , x, q2 , R)     (c, q2 , x, q3 , R), (c, q3 , c, q3 , R), (2, q3 , 2, q4 , L)    (a, q4 , a, q4 , L), (b, q4 , b, q4 , L) δ=  (c, q4 , c, q4 , L), (x, q4 , x, q4 , L)     (2, q4 , 2, q0 , R)     (x, q0 , 2, q5 , R), (x, q5 , 2, q5 , R), (2, q5 , 2, f , N)   (2, q0 , 2, f , R)

akzeptiert die Sprache L(M) = {an b n c n | n ∈

                      

N}

184

Eigenschaften der Menge aller kontextsensitiven Sprachen I

Die Menge aller durch (nichtdeterministische) LBA akzeptierbaren Sprachen ist genau die Menge aller kontextsensitiven Sprachen. (hier ohne Beweis)

I

Abschlusseigenschaften: Sind L1 und L2 kontextsensitive Sprachen, dann sind auch I I I I I I

L1 ∪ L2 L1 ∩ L2 L1 L1 ◦ L2 L∗1 LR1

kontextsensitive Sprachen. I

F¨ ur kontextsensitive Sprachen ist das Wortproblem (Gilt w ∈ L?) algorithmisch entscheidbar.

I

Ob deterministische und nichtderteministische LBA die selbe Sprachklasse akzeptieren, ist bisher unbekannt (LBA-Problem) 185

Turing-Maschinen (Verallgemeinerung von LBA mit beliebig langem Arbeitsband) Parameter des Maschinenmodelles TM: I I

externer Speicher: Eingabeband aus Zellen interner Speicher: 1. Zustand (Zugriff: Lesen und Schreiben) und 2. beidseitig unendliches Arbeitsband (Zugriff: Lesen und Schreiben, Bewegung auf Nachbarzelle)

I

h¨aufige (¨aquivalente) Darstellung: beidseitig unendliches Eingabeband = Arbeitsband

186

Turing-Maschine – Definition Turing-Maschine (TM) M = (X , Q, Γ, δ, q0 , F , 2) mit X endliches Eingabealphabet

Q endliche Menge von Zust¨anden Γ ⊃ X endliches Arbeitsalphabet δ ⊆ (Γ × Q × Γ × Q × {L, R, N}) ¨ Ubergangsrelation q0 Startzustand F akzeptierende Zust¨ande 2 ∈ Γ \ X Leere-Zelle-Symbol

TM M heißt deterministisch gdw. f¨ ur jedes a ∈ Γ und jedes q ∈ Q gilt

| {(a, q, b, p, x) | p ∈ Q, b ∈ Γ, x ∈ {L, R, N}} ∩ δ| ≤ 1 187

Beispiele f¨ur Turing-Maschinen I

TM M1 = ({a, b}, {q0 , f }, {a, b, 2}, δ, q0 , {f }, 2) mit

δ = {(a, q0 , a, q0 , L), (b, q0 , b, q0 , L), (2, q0 , 2, f , R)}

I

TM M2 = ({a, b}, {q0 , qa , qb , f }, {a, b, 2}, δ, q0 , {f }, 2) mit   (a, q0 , 2, qa , R), (b, q0 , 2, qb , R),       (a, qa , a, qa , R), (b, qa , b, qa , R), δ= (a, qb , a, qb , R), (b, qb , b, qb , R),       (2, q0 , 2, f , N), (2, qa , a, f , N), (2, qb , b, f , N)

I

TM M3 = ({1}, {q0 , q1 , q2 , q3 , q4 , f }, {1, x, 2}, δ, q0 , {f }, 2) mit δ

=

{(1, q0 , 1, q1 , R), (1, q1 , x, q2 , R), (1, q2 , 1, q3 , R)}

∪ {(1, q3 , x, q2 , R), (1, q4 , 1, q4 , L), (x, q1 , x, q1 , R)} ∪ {(x, q2 , x, q2 , R), (x, q3 , x, q3 , R), (x, q4 , x, q4 , L)} ∪ {(2, q1 , 2, f , L), (2, q2 , 2, q4 , L), (2, q4 , 2, q0 , R)}

188

Konfigurationen einer TM TM M = (X , Q, Γ, δ, q0 , F , 2)

Konfiguration uqv ∈ (Γ∗ × q × Γ∗ ) bedeutet: I I I

aktueller Bandinhalt: w = uv aktueller Zustand der TM: q Schreib-/Lesekopf der TM zeigt auf erstes Symbol von v (Leere-Zelle-Symbol, falls v = ε)

Startkonfigurationen q0 w mit w ∈ X ∗ akzeptierende Konfigurationen uqv mit q ∈ F Konfigurations¨ uberg¨ange von upv mit u = u 0 a und v = bv 0 : f¨ ur (b, p, c, q, R) ∈ δ : upv ` ucqv 0 f¨ ur (b, p, c, q, L) ∈ δ : upv ` u 0 qacv 0 f¨ ur (b, p, c, q, N) ∈ δ : upv ` uqcv 0

189

Akzeptanz durch TM TM M = (X , Q, Γ, δ, q0 , F , 2)

M akzeptiert das Wort w ∈ X ∗ gdw. eine Folge k0 , . . . , kn von Konfigurationen ki ∈ Γ∗ × Q × Γ∗ exisiert, so dass gilt: 1. k0 = q0 w ist die Startkonfiguration mit Eingabe w 2. k0 ∈ Γ∗ × F × Γ∗ ist eine akzeptierende Konfiguration 3. f¨ ur jedes i ∈ {1, . . . , n} ist ki−1 ` ki ein zul¨assiger Konfigurations¨ ubergang M akzeptiert die Sprache L(M) = {w ∈ X ∗ | M akzeptiert w } L ⊆ X ∗ heißt Turing-akzeptierbar gdw. eine TM M mit L = L(M) existiert. 190

Ende der Berechnung einer Turing-Maschine M¨oglichkeiten f¨ ur Berechnungen der TM M f¨ ur ein Eingabewort w : 1. Berechnung endet in einer akzeptierenden Konfiguration upv (d.h. p ∈ F ), 2. Berechnung endet in einer nicht-akzeptierenden Konfiguration upv (d.h. p 6∈ F ), 3. Berechnung endet nicht (unendliche Berechnung). Im Fall 1 akzeptiert M das Eingabewort w , in Fall 2 und 3 nicht. Zu jeder TM M existiert eine TM M 0 , so dass L(M) = L(M 0 ) und in M 0 jede endliche nicht-fortsetzbare Berechnung in einer akzeptierenden Konfiguration endet. (d.h. Fall 2 kommt in M 0 nicht vor)

191

Alternative Akzeptanzbedingung f¨ur TM TM M = (X , Q, Γ, δ, q0 , F , 2) h¨alt in einer Konfiguration uqv ∈ Γ∗ × Q × Γ∗ gdw. aus uqv kein Konfigurations¨ ubergang in M m¨oglich ist. Zu jeder TM M existiert eine TM M 0 mit L(M) = L(M 0 ) ohne Nachfolgekonfigurationen aus akzeptierenden Konfigurationen. (evtl. neuen akzeptierenden Zustand hinzuf¨ ugen)

Fakt Zu jeder TM M existiert eine TM M 0 mit L(M) = L(M 0 ), die nur in akzeptierenden Konfigurationen h¨alt. (Schleifen in nicht-akzeptierenden Zust¨anden hinzuf¨ ugen)

Fakt Zu jeder TM M existiert eine TM M 0 , so dass f¨ ur jedes w ∈ Γ∗ : M akzeptiert w gdw. M 0 bei Eingabe von w h¨alt. akzeptierende Zust¨ande bei Akzeptanz durch Halt irrelevant (analog PDA-Akzeptanz durch leeren Keller) 192

Nichtdeterministische TM TM M = ({0, 1}, {q0 , q1 , f }, {0, 1, 2}, δ, q0 , {f }, 2) mit δ = { (0, q0 , 1, q0 , R) (1, q0 , 1, q0 , R) (1, q0 , 1, q1 , R) (1, q1 , 1, q1 , R) (2, q1 , 2, f , L)}

akzeptiert z.B. das Wort 11011 mit (u.A.) folgender Berechnung

q0 11011 ` 1q0 1011 ` 11q0 011 ` 111q0 11 ` 1111q1 1 ` 11111q1 2 ` 1111f 1 193

Simulation nichtdeterministischer TM Satz Zu jeder nichtdeterministischen TM M existiert eine deterministische TM M 0 mit L(M) = L(M 0 ). Beweisidee: Menge aller m¨oglichen Berechnungen von M bei Eingabe von w bilden einen Baum (evtl. mit unendlichen Pfaden) Knoten: Wurzel: Bl¨atter: Kanten:

Konfigurationen Startkonfiguration (Startzustand, Eingabewort) akzeptierende Konfiguration zul¨assige Konfigurations¨ uberg¨ange in M

M 0 f¨ uhrt Breitensuche in diesem Baum durch (simuliert parallele Berechnung aller M¨ oglichkeiten, dovetailing), 0 Bandinhalt von M sind Konfigurationen aus M M 0 akzeptiert, sobald eine akzeptierende Konfiguration von M auf dem Arbeitsband steht. 194

Operationen auf TM-akzeptierbaren Sprachen gegeben: TM A, TM B (Akzeptanz durch Halt) gesucht: TM C mit ∩: L(C ) = L(A) ∩ L(B) (sequentieller Akzeptanztest durch beide TM) ∪: L(C ) = L(A) ∪ L(B) (verschr¨ankter Akzeptanztest durch beide TM) ◦: L(C ) = L(A) ◦ L(B) (nichtdeterministische Zerlegung und verschr¨ankter Test) ∗

: L(C ) = L(A)∗ (nichtdeterministische Zerlegung und verschr¨ankter Test)

R

: L(C ) = L(A)R (Vorbereitung: auf dem Arbeitsband w durch w R ersetzen)

mit Turing-Maschinen f¨ ur Unterprogramme“, ” z.B. Verschieben, Kopieren, Zerlegen von W¨ ortern, Steuerung der sequentiellen und verschr¨ankten (pseudo-parallelen) Ausf¨ uhrung mehrerer TM 195

Beispiel: Sprache vom Chomsky-Typ 0 Regeln l → r mit l ∈ (T ∪ N)+ , r ∈ (T ∪ N)∗ G = ({S, T , }, {0, 1}, P, S) mit   S → 1S101         S → 01S00         S → 110S11       0S0 → T P= 0T 0 → T           1S1 → T       1T 1 → T       T → ε Gilt ε ∈ L(G ) ? S



110S11 → 11001S0011 → 11001110S110011



110011101S101110011 → 11001110T 01110011

→∗

110T 011 → 11T 11 → 1T 1 → T → ε 196

TM und Sprachen vom Chomsky-Typ 0 Satz Die Menge aller Sprachen, die von einer TM akzeptiert werden, ist genau die Menge aller Sprachen vom Chomsky-Typ 0. Idee der Konstruktionen: I

Grammatik → TM: M berechnet f¨ ur das Eingabewort w (letztes Wort einer Ableitung) eine Ableitung in der Grammatik r¨ uckw¨arts“. ” (Bei jeder Regelanwendung wird der aktuelle Bandinhalt geeignet verschoben.) TM akzeptiert, wenn Bandinhalt = Startsymbol

I

TM → Grammatik: Grammatik erzeugt Kandidaten“ w 0 f¨ ur jedes Eingabewort w . ” ¨ Grammatik-Regeln beschreiben die lokalen Anderungen bei Konfigurations¨ uberg¨angen der TM. (Simulation der Berechnung der TM auf w durch Ableitung in der Grammatik) Wird in der Ableitung ein akzeptierender Zustand errreicht, ¨ Ubersetzung des Kandidaten w 0 in Terminalwort w . 197

Beispiel: Sprache vom Chomsky-Typ 1 monotone Grammatik Regeln l → r mit l, r ∈ (T ∪ N)+ mit |l| ≤ |r | G = ({S, R, T , A, B}, {a, b}, P, S) mit   S → RT        R → RB        BT → AA P= BA → AA       RA → ba         aA → aa Ableitung f¨ ur das Wort baaaa S

→ RT → RBT → RBBT → RBBBT → RBBAA → RBAAA → RAAAA → baAAA → baaAA → baaaA → baaaa

nichtverk¨ urzende Grammatik, also sind W¨ orter in Zwischenschritten nie l¨anger als das abgeleitete Wort

198

Zusammenfassung: Turing-akzeptierbare Sprachen I

Deterministische TM akzeptieren dieselbe Sprachklasse wie nichtdeterministische TM, und zwar genau alle Sprachen vom Chomsky-Typ 0

I

Die Menge aller TM-akzeptierbaren Sprachen ist abgeschlossen unter ∪, ∩, ◦, ∗ , aber nicht unter (Gegenbeispiel sp¨ater)

I

Wortproblem, Leerheit, Endlichkeit und Gleichheit sind f¨ ur TM-akzeptierbare Sprachen nicht algorithmisch entscheidbar

alternative Bezeichnung: Die Menge aller TM-akzeptierbaren Sprachen ist genau die Menge aller Turing-aufz¨ahlbaren Sprachen.

199

TM f¨ur Verschiebung TM M = ({1, •}, {q0 , q1 , q2 , f }, {1, •, 2}, δ, q0 , {f }, 2) mit δ = { (1, q0 , 1, q0 , R)

(•, q0 , 1, q1 , R) (1, q1 , 1, q1 , R) (2, q1 , 2, q2 , L) (1, q2 , 2, f , L)}

akzeptiert jedes Eingabewort aus 1∗ • 1∗ , verschiebt dabei den Teil nach dem • um eine Zelle nach links als Berechnung mit Un¨ardarstellungen nat¨ urlicher Zahlen: Addition 200

TM zur Berechnung von Funktionen Idee: deterministische TM M berechnet eine Funktion fM : X ∗ → Γ∗ Eingabe w ∈ X ∗ : Inhalt des Arbeitsbandes bei Start der Berechnung (Eingabewort) Ausgabe v ∈ Γ∗ : Inhalt des Arbeitsbandes nach Halt der TM Wenn M bei Eingabe von w nicht h¨alt, ist der Wert fM (w ) nicht definiert. TM M berechnet i.A. eine partielle Funktion fM : X ∗ → Γ∗ da fM nur f¨ ur durch Halt akzeptierte W¨ orter w ∈ X ∗ definiert ist 201

Turing-berechenbare Funktionen Jede deterministische TM M definiert die (partielle) Funktion fM : X ∗ → Γ∗ , wobei ∀w ∈ X ∗ ( v falls Bandinhalt v , nachdem M h¨alt fM (w ) = nicht definiert falls M nicht h¨alt Beispiel: M = ({a, b}, {q0 , q1 , q2 , q3 }, {a, b, 2}, δ, q0 , 2) mit

δ = {(a, q0 , 2, q1 , R), (b, q0 , 2, q2 , R), (2, q0 , 2, q0 , N)} ∪{(a, q1 , a, q1 , R), (b, q1 , b, q1 , R), (2, q1 , a, q3 , N)}

∪{(a, q2 , a, q2 , R), (b, q2 , b, q2 , R), (2, q2 , b, q3 , N)} definiert die Funktion ( vx fM (w ) = nicht definiert

falls w = xv mit x ∈ {a, b} und v ∈ {a, b}∗ falls w = ε

Eine Funktion f : X ∗ → X ∗ heißt Turing-berechenbar gdw. eine deterministische TM M mit f = fM existiert. 202

Turing-berechenbare Funktionen auf

N

Codierung nat¨ urlicher Zahlen, z.B. in

N → {1}∗ I Bin¨ arcodierung c2 : N → {0, 1}∗

I

Un¨arcodierung c1 :

Beispiele: I

M = ({1}, {q0 , q1 }, {1, 2}, δ, q0 , 2) mit δ = {(q0 , 1, q0 , 1, R), (q0 , 2, q1 , 1, N)} berechnet die Funktion fM (x) = x + 1 in Un¨arcodierung

I

M = ({0, 1}, {q0 , q1 , q2 , q3 , f }, {0, 1, 2}, δ, q0 , 2) mit

δ = {(0, q0 , 0, q0 , R), (1, q0 , 1, q0 , R), (2, q0 , 2, q1 , L)}

∪{(0, q1 , 1, q3 , L), (1, q1 , 0, q2 , L), (2, q1 , 2, q1 , N)} ∪{(0, q2 , 1, q3 , L), (1, q2 , 0, q2 , L), (2, q2 , 1, f , N)}

∪{(0, q3 , 0, q3 , L), (1, q3 , 1, q3 , L), (2, q3 , 2, f , R)}

definiert die Funktion fM (x) = x + 1 in Bin¨arcodierung

203

Beispiel: Un¨arcodierung → Bin¨arcodierung f : {1}∗ → {0, 1}∗ Transformation Un¨ar-Bin¨arcodierung wird (z.B.) berechnet von TM M = ({1}, {q0 , q1 , q2 , q3 , q4 , f }, {1, 0, x, y , 2}, δ, q0 , {f }, 2) mit   (q0 , 1, q0 , x, R), (q0 , 2, q1 , 2, L),         (q , x, q , x, L), (q , 2, q , 2, R),   1 1 1 2       (q , x, q , y , L), (q , 2, q , 2, L),  2  3 2 4 (q2 , y , q2 , y , R), (q2 , 1, q2 , 1, R), (q2 , 0, q2 , 0, R), δ=     (q3 , 2, q2 , 1, R), (q3 , 0, q2 , 1, R),           (q3 , 1, q3 , 0, L), (q3 , y , q3 , y , L),     (q4 , y , q4 , 2, L), (q4 , 0, f , 0, N), (q4 , 1, f , 1, N)

204

Mehrstellige Turing-berechenbare Funktionen auf Codierung von Tupeln (x1 , . . . , xk ) ∈ c(x1 ) • c(x2 ) • · · · • c(xk )

N

k

N

durch

mit Trennzeichen •

Beispiel: TM M = ({1, •}, {q0 , q1 , q2 , f }, {1, •, 2}, δ, q0 , 2) mit δ = {(1, q0 , 1, q0 , R), (•, q0 , 1, q1 , R), (2, q0 , 2, q0 , N)}

∪{(1, q1 , 1, q1 , R), (•, q1 , •, q1 , N), (2, q1 , 2, q2 , L)} ∪{(1, q2 , 2, f , N)}

definiert die Funktion fM (x, y ) = x + y (Un¨arcodierung)

N

N

Eine Funktion f : k → heißt Turing-berechenbar gdw. eine deterministische TM M existiert, so dass f¨ ur jede Eingabe (x1 , . . . , xk ) ∈ k gilt

R

f (x1 , . . . , xk ) = y gdw. fM (c(x1 ) • · · · • c(xk )) = c(y ) 205

Nicht Turing-berechenbare Funktionen Ist jede partielle Funktion f : X ∗ → X ∗ (f : X ∗ → Y ∗ , f : → , f : n → ) Turing-berechenbar?

N N

N

N

Nein (Gegenbeispiel sp¨ater) Begr¨ undung: (Aussage f¨ ur X = {0, 1} zu zeigen, gen¨ ugt) 1. Wieviele Turing-Maschinen u ¨ber einem endlichen Alphabet gibt es? abz¨ahlbar viele (weil TM endlich codiert werden k¨ onnen, nach erstem Diagonalverfahren von Cantor) 2. Wieviele partielle Funktionen f : X ∗ → X ∗ gibt es? u ¨berabz¨ahlbar viele (zweites Diagonalverfahren von Cantor) Damit existieren sogar sehr viel mehr (¨ uberabz¨ahlbar viele) partielle Funktionen f : X ∗ → X ∗ (f : X ∗ → Y ∗ , f : → , f : n → ), die nicht von TM berechnet werden k¨ onnen.

N N

N

N

Warum sind TM als Berechnungsmodell trotzdem interessant? 206

Intuitiver Berechenbarkeitsbegriff Eine partielle Funktion f : X ∗ → X ∗ ist berechenbar, falls I

eine Rechenvorschrift oder

I

ein Algorithmus oder

I

ein Programm (in beliebiger Programmiersprache) oder

I

eine deterministische Turingmaschine

N bei Eingabe von x den Wert f (x)

existiert, welche f¨ ur jedes x ∈ ausgibt, falls f (x) definiert ist.

weitere Berechnungsmodelle: Registermaschinen, while-Programme, partiell rekursive Funktionen, λ-Kalk¨ ul, . . . (mehr dazu in LV sp¨ater im Studium)

207

These von Church (Alonzo Church 1903-1995) F¨ ur alle bisher vorgeschlagenen intuitiven Definitionen der Berechenbarkeit l¨asst sich beweisen, dass sie dieselbe Klasse von Funktionen repr¨asentieren. These von Church: Die Menge aller Turing-berechenbaren Funktionen ist genau die Menge aller intuitiv berechenbaren Funktionen. (Diese Aussage ist sinnvoll, aber wegen des Bezugs auf den ungenauen Begriff Intuition“ nicht beweisbar.) ”

208

Universelle (programmierbare) TM Definition von TM (X , Q, Γ, δ, q0 , F , 2) ist endliche Beschreibung f¨ ur I

Maschinenmodell zur Akzeptanz von Sprachen L Eingabe: w ∈ X ∗ I Halt und Ja, falls w ∈ L oder Ausgabe: I Halt und Nein, falls w 6∈ L oder I kein Halt

I

(deterministische TM als) Berechnungsmodell zur Berechnung partieller Funktionen f : X ∗ → Γ∗ Eingabe: w ∈ X ∗ I Halt und f (w ) ∈ Γ∗ oder Ausgabe: I kein Halt

nach These von Church (Ausdrucksst¨arke von TM) existieren universelle TM (programmierbare TM), die I

endliche Beschreibungen von TM interpretieren und damit

I

Berechnungen jeder TM simulieren (den durch die TM definierten Algorithmus ausf¨ uhren) kann

endliche Beschreibung einer TM ist Programm zur Berechnung einer Funktion / Ausf¨ uhrung eines Algorithmus (durch universelle TM)

209

Entscheidbarkeit von Sprachen charakteristische Funktion einer Menge (Sprache) L ⊆ X ∗ : ( 1 falls w ∈ L ∗ ∗ χL : X → {0, 1}, wobei ∀w ∈ X : χL (w ) = 0 sonst Sprache (Menge) L ∈ X ∗ heißt entscheidbar gdw. die Funktion χL berechenbar ist. Jede entscheidende TM h¨alt bei jeder Eingabe. Sprache (Menge) L ∈ X ∗ heißt semi-entscheidbar gdw. die halbe“ charakteristische Funktion χ0L : X ∗ → {0, 1} berechenbar ist: ” ( 1 falls w ∈ L ∗ 0 ∀w ∈ X : χL (w ) = nicht definiert sonst

Fakt Eine Sprache ist genau dann semi-entscheidbar, wenn sie Turing-akzeptierbar ist. 210

Beispiele entscheidbarer Sprachen

I

jede endliche Sprache L = {w1 , . . . , wn } (f¨ ur jedes i nacheinander Test, ob Eingabe = wi )

I

{a(2 ) | n ∈

I

jede regul¨are , kontextfreie, kontextsensitive Sprache,

I

Menge aller Primzahlen (z.B. in Un¨ardarstellung),

I

Menge aller Primzahlzwillinge, d.h. Paare (p, p + 2) mit Primzahlen p und p + 2

n

N},

211

Abschlusseigenschaften Satz Eine Sprache L ist genau dann entscheidbar, wenn L und L TM-akzeptierbar sind. Idee: parallele“ Ausf¨ uhrung der Maschinen ” M mit L(M) = L und N mit L(N) = L auf Eingabe w , M h¨alt, falls w ∈ L, sonst h¨alt N Die Menge aller entscheidbaren Sprachen ist abgeschlossen unter Vereinigung wegen χL∪L0 (w ) = max(χL (w ), χL0 (w )) berechenbar Schnitt wegen χL∩L0 (w ) = min(χL (w ), χL0 (w )) berechenbar Komplement wegen χL (w ) = 1 − χL (w ) berechenbar Achtung (Unterschied zu TM-akzeptierbaren Sprachen): Aus der TM-Akzeptierbarkeit von L folgt i.A. nicht die TM-Akzeptierbarkeit von L. 212

Spezielles Halteproblem f¨ur TM c(M): endliche Codierung c(M) der TM M (z.B. als Bin¨arwort) Das spezielle Halteproblem ist die Sprache S

= {c(M) | M h¨alt bei Eingabe c(M)}

Satz Die Sprache S ist Turing-akzeptierbar. Frage: Ist die Sprache S entscheidbar?

213

Unentscheidbarkeit des speziellen Halteproblems Satz Es existiert keine TM, welche das spezielle Halteproblem (die Sprache S) entscheidet, d.h. die folgende Funktion berechnet:  ur eine TM M und  1 falls w = c(M) f¨ M h¨alt bei Eingabe von w χS (w ) =  0 sonst indirekter Beweis: (analog Barbier-Problem) Annahme: N ist TM mit fN = χS Konstruktion einer TM N 0 , so dass f¨ ur jede TM M gilt: ( nicht definiert falls M bei Eingabe von c(M) h¨alt fN 0 (c(M)) = 1 falls M bei Eingabe von c(M) nicht h¨alt Ist fN 0 (c(N 0 )) definiert? Widerspruch, eine solche TM N kann also nicht existieren. 214

Komplement des speziellen Halteproblems Spezielles HP: S

= {c(M) | M h¨alt bei Eingabe c(M)}

Komplement des speziellen HP:   w ist keine Codierung einer TM oder S = w| w = c(M) und M h¨alt bei Eingabe c(M) nicht

Folgerung Die Sprache S ist nicht Turing-akzeptierbar. Beweisidee (indirekt): I

bekannt: 1. S ist TM-akzeptierbar. 2. S ist nicht entscheidbar. 3. S TM-akzeptierbar ∧ S TM-akzeptierbar → S entscheidbar

I

Annahme: S ist TM-akzeptierbar. dann ist S entscheidbar wegen 1. und 3. Widerspruch zu 2., also Annahme falsch, also S nicht TM-akzeptierbar. 215

Folgerungen aus der Unentscheidbarkeit von S Keine der folgenden Probleme (Sprachen) ist entscheidbar: A = {c(M) • w | M h¨alt bei Eingabe w } allgemeines Halteproblem E

= {c(M) | M h¨alt bei Eingabe ε} Halteproblem mit leerer Eingabe

T

= {c(M) | M h¨alt f¨ ur jede beliebige Eingabe} Totalit¨atsproblem

I

= {c(M) | M h¨alt f¨ ur irgendeine Eingabe}

N = {c(M) | M h¨alt f¨ ur keine Eingabe} 216

Praktische Bedeutung nach These von Church: Das Halteproblem ist f¨ ur kein intuitives Berechnungsmodell entscheidbar. Es existiert kein Programm, welches f¨ ur jedes beliebige Programm P feststellt, ob P immer (f¨ ur jede Eingabe) h¨alt. (Unentscheidbarkeit des Totalit¨atsproblems) Es existiert kein Programm, welches f¨ ur jedes beliebige Paar (P, v ) feststellt, ob das Programm P bei Eingabe von v anh¨alt. (Unentscheidbarkeit des allgemeinen Halteproblems) Solche negativen Aussagen sind n¨ utzlich, z.B. um Arbeitskraft- und -zeitverschwendung zu vermeiden.

217

Spezialf¨alle F¨ ur spezielle Programme P und Eingaben w l¨asst sich h¨aufig automatisch feststellen, ob P bei Eingabe von w anh¨alt. realistische Ziele: Anwendung: Programme verwenden, f¨ ur die Termination f¨ ur alle (relevanten) Eingaben bewiesen wurde (z.B. als Ger¨atetreiber) Forschung: m¨oglichst viele und große Klassen von Programmen und Eingaben finden, f¨ ur die sich Termination (oder Nicht-Termination) beweisen l¨asst, (Weiter-)Entwicklung von Verfahren zum Nachweis der Termination von Programmen

218