Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (III) 17.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@...
15 downloads 0 Views 148KB Size
Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (III) 17.06.2015

Viorica Sofronie-Stokkermans

e-mail: [email protected]

1

¨ Ubersicht 1. Motivation 2. Terminologie 3. Endliche Automaten und regul¨ are Sprachen 4. Kellerautomaten und kontextfreie Sprachen 5. Turingmaschinen und rekursiv aufz¨ ahlbare Sprachen 6. Berechenbarkeit, (Un-)Entscheidbarkeit 7. Komplexit¨ atsklassen P und NP

2

Umformung von Grammatiken • Startsymbol nur links Ist das bei einer Grammatik nicht gegeben, kann man es wie folgt erreichen: – Fu ¨hre ein neues Startsymbol Sneu ein – Fu ¨ge die Regel Sneu → S hinzu.

• Keine nutzlose Symbole Theorem (cf-Grammatik ohne nutzlose Symbole) Ist G = (V , T , R, S) eine cf-Grammatik mit L(G ) 6= ∅, dann existiert eine cf-Grammatik G ′ = (V ′ , T ′ , R ′ , S ′ ) mit: • G ′ ist ¨ aquivalent zu G . • Jedes x ∈ (V ∪ T ) ist erreichbar und co-erreichbar.

3

Normalform fu ¨r Regeln Theorem (Normalform) Zu jeder Grammatik G (beliebigen Typs) existiert eine ¨ aquivalente Grammatik G ′ , bei der fu ¨r alle Regeln P → Q ∈ R ′ gilt: • Q ∈ V ∗ und P beliebig • Q ∈ T und P ∈ V Fu ¨r alle Typen außer den linearen hat G ′ denselben Typ wie G . Beweis: Fu ¨r jedes t ∈ T erzeuge man eine neue Variable Vt . • V ′ = V ∪ {Vt | t ∈ T } • R ′ entsteht aus R, indem fu ¨r jede Regel P → Q ∈ R in Q alle Vorkommen eines Terminals t durch die zugeh¨ orige Variable Vt ersetzt werden. Außerdem enth¨ alt R ′ fu ¨r jedes t ∈ T eine neue Regel Vt → t.

4

Elimination von ε-Regeln Idee: Variablen, aus denen ε ableitbar ist, sollten eliminiert werden

5

Elimination von ε-Regeln Idee: Variablen, aus denen ε ableitbar ist, sollten eliminiert werden Definition (ε-Regel, nullbare Variablen) Eine Regel der Form P → ε (P eine Variable) heißt ε-Regel. Eine Variable A heißt nullbar, falls A =⇒∗ ε Theorem (ε-Regeln sind eliminierbar) Zu jeder cf-Grammatik G existiert eine ¨ aquivalente cf-Grammatik G ′ • ohne ε-Regeln und nullbare Variablen, falls ε 6∈ L(G ), • mit der einzigen ε-Regel S → ε und der einzigen nullbaren Variablen S, falls ε ∈ L(G ) und S das Startsymbol ist.

6

Elimination von ε-Regeln Algorithmus zur Berechnung der nullbaren Variablen Input: Grammatik G = (V , T , R, S) Output: nullbare Variablen

S o.B.d.A. in keiner Regel rechts

Alt := ∅ Neu := {A ∈ V | A → ε ∈ R} while Alt 6= Neu { Alt := Neu fu ¨r alle (P → Q) ∈ R do { if Q = A1 . . . An and Ai ∈ Neu fu ¨r 1 ≤ i ≤ n and P 6∈ Neu, then Neu := Neu ∪ {P} } } output Neu 7

Elimination von ε-Regeln Beweis (Forts.) Ausgangsgrammatik G habe die Normalform, bei der fu ¨r jede Regel P → Q: Q ∈ V ∗ oder Q ∈ T . Fu oglichen Kombinationen ¨r jede Regel P → A1 . . . An generiere alle m¨ P → α1 . . . αn mit • αi ∈ {ε, Ai } • α i = Ai

falls Ai nullbar

falls Ai nicht nullbar

Dann • Fu ¨ge alle diese neuen Regeln zur Grammatik hinzu • Entferne alle Regeln der Form A → ε mit A 6= S 8

Elimination von ε-Regeln Beweis ((Forts.) Zu zeigen: Fu ¨r die neue Grammatik G ′ gilt: L(G ′ ) = L(G ) Vorgehen: • G hat die Normalform: Fu ¨r jede Regel P → Q gilt Q ∈ V ∗ oder Q ∈ T . • Wir beweisen die etwas st¨ arkere Behauptung fu ¨r alle A ∈ V fu ¨r alle w ∈ (V ∪ T )∗ − {ε}  ∗ ∗ (A =⇒G w ) gdw (A =⇒ ′ w ) , G

• Daraus folgt sofort L(G ′ ) = L(G ). 9

Elimination von ε-Regeln Beweis (Forts.) ”⇒” letzte Vorlesung. ”⇐” Wir zeigen: Aus A =⇒∗ ′ w folgt A =⇒∗G w (Induktion u ange ¨ber L¨ G einer Ableitung von A nach w in G ′ ): Induktionsanfang: L¨ ange = 0. Dann ist w = A, und A =⇒∗G A gilt immer. Induktionsschritt: Es gelte fu ¨r alle Ableitungen A =⇒∗G ′ w einer L¨ ange von h¨ ochstens n, dass A =⇒∗G w . Ist A =⇒∗ ′ w eine Ableitung der L¨ ange n + 1, so gibt es ein ℓ, G W¨ orter w1 , . . . , wℓ und Variablen A1 , . . . , Aℓ mit A =⇒G ′ A1 . . . Aℓ ochstens n =⇒∗ ′ w = w1 . . . wℓ . Es gilt jeweils Ai =⇒∗ ′ wi in h¨ G G Schritten, und wi 6= ε.

10

Elimination von ε-Regeln Beweis (Forts.) Nach der Induktionsvoraussetzung folgt daraus: • fu ¨r die Originalgrammatik G gibt es Ableitungen Ai =⇒∗G wi • damit gibt es auch eine Ableitung A1 . . . Aℓ =⇒∗G w . Da es in G ′ eine Ableitung A =⇒G ′ A1 . . . Aℓ gibt, gibt es in R ′ eine Regel A → A1 . . . Aℓ . Wie ist diese Regel aus R entstanden?

11

Elimination von ε-Regeln Beweis (Forts.) Nach der Induktionsvoraussetzung folgt daraus: • fu ¨r die Originalgrammatik G gibt es Ableitungen Ai =⇒∗G wi • damit gibt es auch eine Ableitung A1 . . . Aℓ =⇒∗G w . Da es in G ′ eine Ableitung A =⇒G ′ A1 . . . Aℓ gibt, gibt es in R ′ eine Regel A → A1 . . . Aℓ . Wie ist diese Regel aus R entstanden? Eine Regel in R ′ entsteht aus einer Regel in R, indem einige nullbare Variablen gestrichen werden. Es gab also in G nullbare Variablen B1 bis Bm , so dass R die Regel A → A1 . . . Aℓ1 B1 Aℓ1 +1 . . . Aℓ2 B2 . . . Am Bm Am+1 . . . Aℓ enth¨ alt. (m kann auch 0 sein, dann war die Regel selbst schon in R.) 12

Elimination von ε-Regeln Beweis (Forts.) Also gilt in G : A =⇒G A1 . . . Aℓ1 B1 Aℓ1 +1 . . . Aℓ2 B2 . . . Am Bm Am+1 . . . Aℓ =⇒∗G A1 . . . Aℓ1 Aℓ1 +1 . . . Aℓ2 . . . Am Am+1 . . . Aℓ =⇒∗G w da ja Bi =⇒∗G ε m¨ oglich ist.



13

Elimination von ε-Regeln Korollar. L2 ⊆ L1 Das heißt, jede kontextfreie Sprache ist auch kontextsensitiv

14

Elimination von ε-Regeln Korollar. L2 ⊆ L1 Das heißt, jede kontextfreie Sprache ist auch kontextsensitiv Beweis. Regeln einer kontextsensitiven Grammatik mu ¨ssen folgende Form haben: • entweder uAv → uαv mit u, v , α ∈ (V ∪ T )∗ , |α| ≥ 1, A ∈ V • oder S → ε und S kommt in keiner Regelconclusio vor. Diesen Bedingungen genu ¨gt die kontextfreie Grammatik nach Elimination der ε-Regeln. 15

Elimination von Kettenproduktionen

16

Elimination von Kettenproduktionen Definition. Eine Regel der Form A→B

mit A, B ∈ V

heißt Kettenproduktion. Theorem. (Kettenproduktionen sind eliminierbar) Zu jeder cf-Grammatik existiert eine ¨ aquivalente cf-Grammatik ohne Kettenproduktionen.

17

Elimination von Kettenproduktionen Beweis. Sei G = (V , T , R, S) eine kontextfreie Grammatik ohne ε-Regeln, außer ggf. S → ε. Konstruiere neue Grammatik wie folgt: 1. Fu ¨r alle • Variablenpaare A, B ∈ V , • Regeln B → α ∈ R,

A 6= B

mit A =⇒∗ B

α 6∈ V

fu ¨ge zu R hinzu: A→α 2. L¨ osche alle Kettenproduktionen

18

Normalform fu ¨r cf-Grammatiken Theorem. Zu jeder cf-Grammatik existiert eine ¨ aquivalente cf-Grammatik • ohne ε-Regeln (bis auf S → ε, falls ε zur Sprache geho ¨rt; in diesem Fall darf S in keiner Regelconclusio vorkommen), • ohne nutzlose Symbole, • ohne Kettenproduktionen, • so dass fu ¨r jede Regel P → Q gilt: entweder Q ∈ V ∗ oder Q ∈ T .

19

Normalform fu ¨r cf-Grammatiken Beweis. 1. Man teste zun¨ achst, ob S nullbar ist. Falls ja, dann verwende man Sneu als neues Startsymbol und fu ¨ge die Regeln Sneu → S | ε zum Regelsatz hinzu. 2. Man eliminiere nutzlose Symbole. 3. Man eliminiere alle ε-Regeln außer Sneu → ε. 4. Man bringe die Grammatik in die Normalform, bei der fu ¨r jede Regel P → Q gilt: entweder Q ∈ V ∗ oder Q ∈ T . 5. Man eliminiere Kettenproduktionen. 6. Zum Schluss eliminiere man noch einmal alle nutzlosen Symbole (wg. Schritt 3)

20

Normalformen Unterschied: Grammatiktypen und Normalformen Gemeinsamkeit: Sowohl Grammatiktypen als auch Normalformen schr¨ anken die Form von Grammatikregeln ein. Unterschied: • Grammatiktypen (rechtslinear, kontextfrei usw.) fu ¨hren zu unterschiedlichen Sprachklassen • Normalformen fu ¨hren zu den selben Sprachklassen

21

Normalformen Wozu dann Normalformen? • Weniger Fallunterscheidungen bei Algorithmen, die mit Grammatiken arbeiten. • Struktur von Grammatiken einfacher zu “durchschauen”

22

Normalformen Wozu dann Normalformen? • Weniger Fallunterscheidungen bei Algorithmen, die mit Grammatiken arbeiten. • Struktur von Grammatiken einfacher zu durchschauen“ ” Zwei Normalformen Chomsky-Normalform: Baut auf den Umformungen des vorigen Teils auf. ¨ Greibach-Normalform: Ahnlich den rechtslinearen Grammatiken.

23

Chomsky-Normalform Definition. Eine cf-Grammatik G = (V , T , R, S) ist in ChomskyNormalform (CNF), wenn gilt: • G hat nur Regeln der Form A → BC

mit A, B, C ∈ V und

A→a

mit A ∈ V , a ∈ T

(nicht ε!)

• Ist ε ∈ L(G ), so darf G zus¨ atzlich die Regel S → ε enthalten. In diesem Fall darf S in keiner Regelconclusio vorkommen. • G enth¨ alt keine nutzlosen Symbole.

24

Chomsky-Normalform Theorem. Zu jeder cf-Grammatik existiert eine ¨ aquivalente cf-Grammatik in Chomsky-Normalform.

25

Chomsky-Normalform Theorem. Zu jeder cf-Grammatik existiert eine ¨ aquivalente cf-Grammatik in Chomsky-Normalform.

Beweis. Schritt 1: Wende auf G die Umformungen des letzten Abschnitts an. Ergebnis: • G hat keine nutzlosen Symbole • Alle Regeln haben die Form

1. A → α mit A ∈ V und α ∈ V ∗ , |α| ≥ 2, und 2. A → a mit A ∈ V , a ∈ T 26

Chomsky-Normalform Beweis (Forts.) ange gr¨ oßer 2 Schritt 2: Regeln so umformen, dass keine Conclusio eine L¨ hat. Ersetze jede Regel A → A1 . . . An mit A, Ai ∈ V , n ≥ 3 durch: A

→ A1 C1

C1

→ A2 C2 . ..

Cn−2 → An−1 An Dabei sind die Ci neue Variablen in V . ✷ 27

Greibach-Normalform Definition. Eine cf-Grammatik G = (V , T , R, S) ist in Greibach-Normalform (GNF), wenn gilt: • G hat nur Regeln der Form A → aα mit A ∈ V und a ∈ T und α ∈ V ∗ • Ist ε ∈ L(G ), so darf G zus¨ atzlich die Regel S → ε enthalten. In diesem Fall darf S in keiner Regelconclusio vorkommen. • G enth¨ alt keine nutzlosen Symbole.

28

Pumping-Lemma fu ¨r kontextfreie Sprachen

29

Wiederholung Theorem (Pumping-Lemma f¨ ur L3 -Sprachen) Sei L ∈ RAT. Dann existiert ein n ∈ N, so dass: Fu ¨r alle x ∈L

mit

|x| ≥ n

existiert eine Zerlegung x = uv w

u, v , w ∈ Σ



mit • |v | ≥ 1 • |v | < n • uv m w ∈ L

fu ¨r alle m ∈ N

30

Pumping-Lemma fu ¨r kontextfreie Sprachen Theorem (Pumping-Lemma f¨ ur kontextfreie Sprachen) Sei L kontextfrei. Dann existiert ein n ∈ N, so dass: Fu ¨r alle z ∈L

mit

|z| ≥ n

existiert eine Zerlegung z = uv w xy

u, v , w , x, y ∈ Σ



mit • |vx| ≥ 1 • |vwx| < n • uv m w x m y ∈ L

fu ¨r alle m ∈ N

31

Pumping-Lemma fu ¨r kontextfreie Sprachen Beweisidee: Bei der Ableitung eines hinreichend langen Wortes muss es eine Variable geben, die mehr als einmal auftaucht. Dies fu ¨hrt zu einer Schleife in der Ableitung, die aufgepumpt werden kann.

32

Pumping-Lemma fu ¨r kontextfreie Sprachen Beweisidee:

33

Pumping-Lemma fu ¨r kontextfreie Sprachen Anwendung des Pumping-Lemmas fu ¨r cf-Sprachen Wenn das cf-Pumping-Lemma fu ¨r eine Sprache nicht gilt, dann kann sie nicht kontextfrei sein.

34

Pumping-Lemma fu ¨r kontextfreie Sprachen Anwendung des Pumping-Lemmas fu ¨r cf-Sprachen Wenn das cf-Pumping-Lemma fu ¨r eine Sprache nicht gilt, dann kann sie nicht kontextfrei sein.

Beispiel (Sprachen, die nicht kontextfrei sind) Fu ¨r folgende Sprachen kann man mit Hilfe des cf-Pumping-Lemmas zeigen, dass sie nicht kontextfrei sind: • {ap | p prim} • {an b n c n | n ∈ N} • {zzz | z ∈ {a, b}∗ }. 35

Pumping-Lemma fu ¨r kontextfreie Sprachen L1 = {ap | p prim} ist nicht kontextfrei. Beweis: Wir nehmen an, L1 sei kontextfrei. Sei dann n die zugeh¨ orige Konstante aus dem Pumping-Lemma. Wir betrachten das Wort z = ap , wobei p prim und p ≥ n + 2. Es muss dann eine Zerlegung z = uvwxy geben, so dass: |vx| ≥ 1, |vwx| < n, uv i wx i y ∈ L1 fu ¨r alle i ≥ 0. Dann u = ai1 , v = ai2 , w = ai3 , x = ai4 , y = ai5 mit • i1 + i2 + i3 + i4 + i5 = p • i2 + i4 ≥ 1,

i2 + i3 + i4 < n

• i1 + mi2 + i3 + mi4 + i5 prim fu ¨r alle m ≥ 0. Sei m = i1 + i3 + i5 . Dann kann i1 + mi2 + i3 + mi4 + i5 = (i1 + i3 + i5 )(1 + i2 + i4 ) nicht prim sein, da i1 + i3 + i5 = p − (i2 + i4 ) ≥ p − n ≥ 2 und 1 + i2 + i4 ≥ 2. Also uv m wx m y 6∈ L1 . Widerspruch. Also kann L1 nicht kontextfrei sein. 36

Pumping-Lemma fu ¨r kontextfreie Sprachen L2 = {am b m c m | m ∈ N} ist nicht kontextfrei Beweis: Wir nehmen an, L2 sei kontextfrei. Sei dann n die zugeh¨ orige Konstante aus dem Pumping-Lemma. Wir betrachten das Wort z = an b n c n . Es muss dann eine Zerlegung z = uvwxy geben, so dass: |vx| ≥ 1, |vwx| < n, uv i wx i y ∈ L2 fu ¨r alle i ≥ 0. Da |vwx| < n, enth¨ alt das Wort vwx ho ¨chstens zwei verschiedene Buchstaben. Da |vx| ≥ 1, kann uv 2 wx 2 y nicht von allen drei Buchstaben gleich viele enthalten. Also kann L2 nicht kontextfrei sein. 37

Pumping-Lemma fu ¨r kontextfreie Sprachen L3 = {zzz | z ∈ {a, b}∗ } ist nicht kontextfrei. Beweis: Wir nehmen an, L3 sei kontextfrei. Sei dann n die zugeh¨ orige Konstante aus dem Pumping-Lemma. Wir betrachten das Wort z = an ban ban b. Es muss dann eine Zerlegung z = uvwxy geben, so dass: |vx| ≥ 1, |vwx| < n, uv i wx i y ∈ L3 fu ¨r alle i ≥ 0. Da |vwx| < n, enth¨ alt das Wort vwx h¨ ochstens ein b. Fall 1: vwx = ak . Dann wird durch aufpumpen von v , x eine a Sequenz l¨ anger als die anderen, so uv 2 wx 2 y 6∈ L3 . Fall 2: vwx = ak bam . Fall 2.1: b kommt nicht in v oder x vor. Dann sind in uv 2 wx 2 y zwei a Sequenzen l¨ anger als die dritte, so uv 2 wx 2 y 6∈ L3 . Fall 2.2: b kommt in v oder x vor. Dann enth¨ alt uv 0 wx 0 y nur zwei b’s, d.h. uv 0 wx 0 y 6∈ L3 . Also kann L3 nicht kontextfrei sein. 38