27.02.2013 Aufrufe

Mitschrift vom 30.06.2000

Mitschrift vom 30.06.2000

Mitschrift vom 30.06.2000

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Theoretische Informatik 1 Vorlesungsskript <strong>vom</strong> Freitag, 30. Juni 2000<br />

Index:<br />

Erstellt von:<br />

(Matrikelnummer: 702899)<br />

Seite :<br />

4.6 Das Pumping-Lemma für reguläre Sprachen............................................................................................. 1<br />

Satz W.................................................................................................................................... ............1<br />

Zugrundeliegende Idee des Pumping-Lemma....................................................................................2<br />

Beweis des Pumping-Lemma.............................................................................................................2<br />

Hinweise zum Pumping-Lemma........................................................................................................3<br />

Beispiele zum Pumping-Lemma........................................................................................................3<br />

4.7 Reguläre Grammatiken..............................................................................................................................4<br />

Allgemeine Grammatiken..................................................................................................................4<br />

Zusammenfassung des bisher behandelten Stoffes.............................................................. 4<br />

Beispiel einer allgemeinen Grammatik............................................................................... 4<br />

Definition X...................................................................................................................... ...5<br />

Beispiele für allgemeine Grammatiken nach der Definition X............................. 5<br />

Reguläre Grammatiken .....................................................................................................................6<br />

Definition Y.........................................................................................................................6<br />

Beispiel einer regulären Grammatik nach der Definition Y.................................. 6<br />

Satz Z.....................................................................................................................6<br />

Beweis.....................................................................................................6<br />

Beweis für „⇒“.........................................................................6<br />

Beweis für „⇐“.........................................................................7<br />

4.6 Das Pumping-Lemma für reguläre Sprachen:<br />

Das Pumping-Lemma ist ein zentrales Hilfsmittel um zu entscheiden bzw. um nachzuweisen, dass eine Sprache<br />

nicht regulär ist.<br />

Satz W :<br />

∗<br />

Es sei X ein Alphabet, dann existiert zu jeder regulären Sprache R ⊆ X ein n ∈ IN , so dass für alle Wörter<br />

z ∈ R mit z ≥ u eine Zerlegung z = uvw mit u, v,<br />

w X , v ≠ ε und uv ≤ n existiert, für die gilt:<br />

uv w R<br />

i ∈ für alle i ≥ 0.<br />

Formal:<br />

∗<br />

∈ ∗<br />

∀R<br />

∈ Re g ∃n<br />

∈ IN ∀z<br />

∈ R , z ≥ n ∃uvw∈<br />

X : z = uvw ∧ v ≠ ε ∧ uv ≤ n : ∀n<br />

∈ IN 0 : uv w R .<br />

- 1 -<br />

i ∈


Theoretische Informatik 1 Vorlesungsskript <strong>vom</strong> Freitag, 30. Juni 2000<br />

Zugrundeliegende Idee des Pumping-Lemma :<br />

Es existiert eine Pumpstelle in allen regulären Wörter z ab einer gewissen Länge n.<br />

¡<br />

Endliche Akzeptoren : Um unbeschränkte Wörter zu erkennen, muss ein Akzeptor in Zyklen laufen, wobei<br />

man diese Zyklen mehrfach durchlaufen kann.<br />

v (*)<br />

Graphische Veranschaulichung:<br />

Reguläre Ausdrücke : Ein * -Operator ermöglicht einige Methoden eine unendliche Sprache zu beschreiben.<br />

Dies ergibt, dass sehr lange Wörter viele Wiederholungen desselben Teilwortes<br />

enthalten. w1 L* wn n ∈IN<br />

Beweis des Pumping-Lemma :<br />

Es sei R eine reguläre Sprache und zu R existiert ein endlicher deterministischer Akzeptor A = (X, S, δ, s0 ) mit<br />

L(A ) = R.<br />

Nun wähle man n:= |s | , wobei z ∈R und |z | ≥ n ist.<br />

Dann gibt es mindestens einen Zustand, welcher bei der Eingabe von z zweimal durchlaufen wird,<br />

also :<br />

z = x ,..., x , wobei gilt: r ≥ n und xi<br />

∈ X für i = 1,...,<br />

r .<br />

Graphische Darstellung:<br />

1<br />

r<br />

Nun erkennt man:<br />

Für das erste Auftreten eines Zustandes sj = sk gilt:<br />

u : = x ... x j und v : = x j+<br />

1 ... xR<br />

≠ ε<br />

1 .<br />

Damit gilt für das erste Auftreten : uv = x ... x ≤ n<br />

Daraus lässt sich nun folgern:<br />

δ s n = δ s , uv = δ s<br />

i<br />

, uv mit i ≥<br />

1 . Damit ist : k + 1 ... r<br />

- 2 -<br />

w = x x .<br />

Offenbar ist ( ) ( ) ( ) 0 , woraus folgt δ ( s uv w)<br />

= δ(<br />

s , uvw)<br />

= s ∈ F<br />

⇒ w∈<br />

R mit i ≥ 0 .<br />

uv i<br />

0 , 0<br />

0<br />

u<br />

S0 Sj S<br />

x 1 x 2 x j x j+1 x j+2 x k-1<br />

S0 S1<br />

u<br />

. . . Sj = Sk Sj+1 . . . Sk-1<br />

x k+1<br />

x k+2<br />

v<br />

xR<br />

Sk+1 . . .<br />

w<br />

xr<br />

i<br />

0 , 0<br />

S<br />

w


Theoretische Informatik 1 Vorlesungsskript <strong>vom</strong> Freitag, 30. Juni 2000<br />

Hinweise zum Pumping-Lemma :<br />

¢<br />

£<br />

Das Pumping-Lemma ist keine Äquivalenzaussage. Es ist nur eine Implikation:<br />

Ist eine Sprache L regulär, dann erfüllt L das Pumping-Lemma.<br />

Der umgekehrte Weg ist nicht möglich.<br />

Eine Typische Anwendung des Pumping-Lemma ist um zu zeigen, dass eine Sprache L nicht regulär ist.<br />

Aber das Pumping-Lemma kann oft nicht Angewendet werden, da es Sprachen gibt, welche die Bedingungen<br />

des Pumping-Lemma erfüllen, aber dennoch nicht regulär sind.<br />

Beispiel :<br />

Man nehme an es existiert eine nicht reguläre Sprache L mit { } { } ∗<br />

m n n<br />

L c a b m n 0 a,<br />

- 3 -<br />

= , ≥ ∪ b ,<br />

dann existieren folgende Pumpmöglichkeiten für L :<br />

L unterteilt in uvw: 1) v = c i , mit i ≥ 0 ⇒ v wird gepumpt und das Wort bleibt Element von L.<br />

2) v = a i b i , mit i ≥ 0 ⇒ a, b wird gepumpt und das Wort bleibt Element von L.<br />

Beispiele zum Pumping-Lemma :<br />

P<br />

1) Man definiere eine nicht reguläre Sprache L { O p ist eine Primezahl}<br />

= .<br />

Annahme : L ist regulär. ⇒ Dann muss L das Pumping-Lemma erfüllen.<br />

Daraus folgt diese Beweisführung:<br />

Man wähle ein n nach dem Satz W und es sei r eine Primezahl mit r > n.<br />

r ∈<br />

Des weiteren sei z = O L .<br />

⇒ Dann existiert eine Zerlegung z = uvw mit<br />

r<br />

O t i r ∈<br />

⋅ +<br />

s<br />

uv ≤ n , u = O , v = O mit s , t ≠ 0 .<br />

Für O gilt auch L für alle i ≥ 0 .<br />

⇒ Folglich sind alle Zahlen r + i ⋅t<br />

Primezahlen. Nach spätestens t Zahlen kommt also immer eine<br />

Primezahl. Nun setze man i = r , dann ist r + r ⋅t<br />

eine Primezahl.<br />

⇒ r ⋅( 1+ t)<br />

ist eine Primezahl, andererseits sind r und 1 + t Faktoren von r ( + t)<br />

⇒ L ist nicht regulär.<br />

m<br />

2) Es sei die Sprache L { O m ist Quadratzahl}<br />

= nicht regulär.<br />

Man gehe auch hier von der Annahme aus, dass L regulär ist.<br />

Die Beweisführung lautet dann folgendermaßen:<br />

t<br />

⋅ 1 . ¤<br />

Unter der Bedingung, dass L regulär ist, muss es ein n ∈ IN existieren, so dass sich jedes Wort zu der Form<br />

mit m ≥ n und m Quadratzahl<br />

, sich in die Form z = uvw zerlegen lässt, mit den entsprechenden<br />

Eigenschaften:<br />

i<br />

v ≠ ε,<br />

uv ≤ n,<br />

uv w∈<br />

L mit i ≥ 0 .<br />

O m<br />

2<br />

Nun wähle man speziell: 0 n<br />

z =<br />

und betrachte zugleich die Zerlegung z = uvw .<br />

Daraus folgt wegen der Bedingung des Pumping-Lemma : 1 ≤ v ≤ uv ≤ n .<br />

Ferner ist für i = 2 : uv w ∈ L<br />

( ) ( ) 2<br />

2<br />

w < + 1<br />

2<br />

¤ ⇒ nv<br />

∉<br />

L<br />

n ⇒ L ist nicht regulär !<br />

, anderseits soll gelten: ( ) 2<br />

2<br />

2 2<br />

2<br />

n = z = uvw < uv w ≤ n + n < n + n + 1 = n + 1


Theoretische Informatik 1 Vorlesungsskript <strong>vom</strong> Freitag, 30. Juni 2000<br />

4.7 Reguläre Grammatiken<br />

Allgemeine Grammatiken :<br />

Zusammenfassung des bisher behandelten Stoffes :<br />

- Prozesse des Erlernen von Sprachen → Automaten<br />

- Charakterisierungen → Pumping-Lemma, Abschlusseigenschaften, algebraisch<br />

- Beschreibungen → reguläre Ausdrücke<br />

- Erzeugungprozesse → Grammatiken<br />

Beispiel einer allgemeinen Grammatik :<br />

Produktions- / Ableitungsregeln :<br />

Es handelt sich hierbei um jene Regeln, nach denen die verschiedenen Symbole verwendet bzw. ersetzt werden<br />

dürfen.<br />

→ <br />

→ Hund → Katze<br />

→ Katze → Maus<br />

→ beißt<br />

→ jagt<br />

Erläuterung der verschiedenen Symbolen:<br />

: Nichtterminalsymbole<br />

Hund, Katze, beißt, ... : Terminalsymbole<br />

: Startsymbol<br />

Ableitungsprozess :<br />

Beispiel einer Anwendung der Produktionsregeln dieser Grammatik.<br />

→ → Katze <br />

→ Katze beißt → Katze beißt Maus<br />

- 4 -


Theoretische Informatik 1 Vorlesungsskript <strong>vom</strong> Freitag, 30. Juni 2000<br />

Definition X :<br />

¥<br />

¦<br />

§<br />

Eine Grammatik G beschreibt man durch ein Quadrupel G = (N, T, P, σ ) wobei folgendes gilt:<br />

- N ist die nichtleere endliche Menge von Nichtterminalsymbolen.<br />

- T ist die nichtleere endliche Menge von Terminalsymbolen.<br />

- N ∩ T = ∅ , Es gibt keine Terminalsymbolen die gleichzeitig Nichtterminalsymbolen sind und umgekehrt.<br />

- σ ∈ N ist das Startsymbol.<br />

{ } ∗<br />

- P ⊆ ( α β)<br />

α,<br />

β∈<br />

( N ∪T<br />

)<br />

, ist die endliche Menge der Produktionen oder auch Produktions- oder<br />

Ableitungsregeln.<br />

Bemerkung :<br />

α, β schreibt man auch ⎯⎯→<br />

β oder auch α ⎯⎯→<br />

β , wenn der Bezug zur Grammatik eindeutig<br />

Statt ( )<br />

ist.<br />

Es seien ( ) ∗<br />

w ∈ N ∪T<br />

α G<br />

v, . Dann sei des weiteren v ableitbar aus w<br />

( Formal dargestellt: ⎯⎯→<br />

∗ v , bzw. vereinfacht<br />

w ⎯⎯→<br />

∗ v oder w ⎯⎯→<br />

v ) ,<br />

w G<br />

wenn Wörter der Art ( ) ∗<br />

,..., v ; u ,..., u ; z ,..., z ; α ,..., α ; β ,..., β ∈ N ∪T<br />

v1 k 1 k 1 k 1 k −1<br />

1 k−1<br />

v1 w,<br />

vk<br />

= v,<br />

vi<br />

= ui<br />

α i zi<br />

, vi<br />

1 = uiβ<br />

i zi<br />

für alle i = 1<br />

existieren, dann gilt: = + ,..., k −1<br />

.<br />

Darstellung: v = u α z → u β z = u α z → u β z = u α z → ... → v .<br />

1<br />

1<br />

1<br />

1<br />

1<br />

1<br />

1<br />

Die von einer Grammatik G erzeugte Sprache L(G ) ist definiert durch:<br />

L<br />

∗ ( G)<br />

= { w∈<br />

T a ⎯⎯→<br />

∗ w}<br />

.<br />

G<br />

2<br />

2<br />

Beispiele für allgemeine Grammatiken nach der Definition X :<br />

n n<br />

1) Man nehme die Sprache L = { a b n ∈ IN}<br />

2<br />

2<br />

2<br />

1 , für welche die Grammatik G 1 = ( N1<br />

, T1<br />

, P1<br />

, σ1<br />

) mit 1 = { σ1}<br />

1 = { a b}<br />

und P 1 = { σ1<br />

→ aσ1b,<br />

σ1<br />

→ ε}<br />

.<br />

T ,<br />

In diesem Fall sieht der Ableitungsprozess folgendermaßen aus:<br />

n n n n<br />

→ aσ b → aaσ<br />

bb → → a σ b → a b<br />

σ 1 1<br />

1 ... 1<br />

, woraus folgt: ( G1<br />

) L1<br />

- 5 -<br />

2<br />

3<br />

3<br />

3<br />

L = .<br />

N ,<br />

2) Man definiere für die korrekte Klammerung durch begin und end in einem Programm folgende Grammatik<br />

G 2 = ( N 2 , T2<br />

, P2<br />

, σ 2 ) mit N 2 = { σ 2}<br />

, T 2 = { begin,<br />

end}<br />

und P 2 = { σ 2 → begin σ 2end<br />

σ 2 , σ 2 → ε}<br />

.<br />

Der Ableitungsprozess besitzt folgendes Aussehen:<br />

σ → begin σ end σ → begin σ end → begin begin σ end σ end → begin begin end σ end<br />

2<br />

2<br />

2<br />

→ begin begin end begin σ end σ end → begin begin end begin σ end end → begin begin end begin end end<br />

⇒<br />

begin<br />

begin<br />

end<br />

begin<br />

end<br />

end<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2


Theoretische Informatik 1 Vorlesungsskript <strong>vom</strong> Freitag, 30. Juni 2000<br />

Reguläre Grammatiken :<br />

Die Typisierung von Grammatiken und der Bezug zu speziellen Sprachklassen erfolgt über die Einschränkung<br />

der Form der Produktion.<br />

Definition Y :<br />

Eine Grammatik G = (N, T, P, σ ) heißt rechtslineare Grammatik, wenn gilt<br />

∗<br />

∗<br />

Für alle ( α, β)<br />

∈ P existiert ein α ∈ N und ein β∈ T oder ein β = β'<br />

B mit β' ∈T<br />

und B ∈ N .<br />

Analog : Bei der linkslinearen Grammatik wird das „ β = β'<br />

B “ durch „ β = B β'<br />

“ ersetzt.<br />

Beispiel einer regulären Grammatik nach der Definition Y :<br />

Man nehme an, zu der Sprache { } { } ∗ ∗ = a ⋅ b<br />

L existiert eine reguläre Grammatik = ( N,<br />

T,<br />

P,<br />

σ)<br />

definierte ist mit N = { a,<br />

σ'}<br />

, T = { a,<br />

b}<br />

und P = { σ → aσ,<br />

σ → σ',<br />

σ'<br />

→ σ'b,<br />

σ'<br />

→ ε}<br />

⇒ L ( G)<br />

= L .<br />

Satz Z :<br />

- 6 -<br />

G , welche<br />

∗<br />

Sei X ein Alphabet, dann existiert zu jeder regulären Sprache L ⊆ X eine rechtslineare Grammatik G, führ die<br />

gilt: L ( G)<br />

= L und umgekehrt.<br />

Beweis :<br />

Der Beweis ist unterteilt in zwei Beweise für jeweils eine Richtung, also einer für „⇒“ und einer für „⇐“.<br />

Beweis für „⇒“ :<br />

∗<br />

Es sei die Sprache ⊆ X<br />

L regulär. Dann existiert ein endlicher deterministischer Akzeptor A = ( X , S,<br />

δ,<br />

s0<br />

, F )<br />

mit der Eigenschaft L = L(<br />

A)<br />

.<br />

Beweisidee :<br />

Man konstruiere eine Grammatik aus der Zustandsüberführungsaktion δ.<br />

Die Zustandsüberführungsaktion δ wird also zur Grammatik.<br />

Beweisführung:<br />

Es sei eine Grammatik G = ( N,<br />

T,<br />

P,<br />

σ)<br />

definiert durch:<br />

N := S , T := X , σ := s0 und s → xs'<br />

∀s,<br />

s'∈<br />

S : δ(<br />

s,<br />

x)<br />

Nun ist zu zeigen: L ( G)<br />

= L<br />

Es sei ein Wort L(<br />

G)<br />

w∈ mit w = x1...<br />

xk<br />

, xi ∈ X ⇔<br />

definiert<br />

s ⎯→ w ⇔ s → x s → x x s → → x ... x ⇔<br />

{ = s } ∪{<br />

s → ε ∀s<br />

F}<br />

P : = '<br />

∈ .<br />

0 ⎯<br />

G<br />

0 1 1 1 2 2 ... 1 k<br />

∀ ∈{<br />

0 ,..., k −1}<br />

: δ(<br />

si<br />

, xi+<br />

1 ) = si+<br />

1<br />

∗<br />

sk ∈ F ⇔ δ s0<br />

, w = sk<br />

i und ( ) F w L(<br />

A)<br />

L<br />

∈<br />

⇔<br />

∈<br />

=<br />

.


Theoretische Informatik 1 Vorlesungsskript <strong>vom</strong> Freitag, 30. Juni 2000<br />

Beweis für „⇐“ :<br />

G = N,<br />

T,<br />

P,<br />

σ eine rechtslineare Grammatik.<br />

Es sei ( )<br />

Beweisidee :<br />

Wir konstruieren einen nichtdeterministischen Akzeptor A ( X S,<br />

δ,<br />

s , F )<br />

Beweisführung:<br />

A X S,<br />

δ,<br />

s , F<br />

Es sei = ( ) mit ( G)<br />

L(<br />

A)<br />

, 0<br />

L = definiert durch :<br />

{ }<br />

- 7 -<br />

= .<br />

, 0<br />

⎧ σ,<br />

α , falls σ → ε ∈ P<br />

S : = N ∪{<br />

α}<br />

mit α ∉ N , s0 : = { σ}<br />

und F = ⎨<br />

.<br />

� { α}<br />

, falls σ → ε ∉ P<br />

B ∈ δ(<br />

A,<br />

x)<br />

, falls A → xB ∈ P<br />

Des weiteren gelten die folgenden Gesetzmäßigkeiten :<br />

.<br />

α ∈ δ A,<br />

x , falls A → x ∈<br />

( ) P<br />

Nun soll gelten für n ≥ 1:<br />

Ein Wort w = x1...<br />

xn<br />

mit xi ∈ X ist Element von L ( G)<br />

.<br />

⇔ Es existiert eine Folge von Nichtterminalsymbolen A1,..., An−1<br />

für die gilt:<br />

→ A → x x A → → x ... x A → x ... x = w .<br />

⇔ L(<br />

A)<br />

σ x1 1 1 2 2 ... 1 n − 1 n−1<br />

1 n<br />

⇔ Es existiert eine Folge von Zuständen A1,..., An−1<br />

mit<br />

A ∈ δ σ x , A ∈ δ A , x , ..., α ∈ δ A , x .<br />

w∈ .<br />

( ) ( ) ( )<br />

1 , 1 2 1 2<br />

n−1<br />

n

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!