Menu Close

Theoretische Informatik (Vorlesung 6)

2.3) Pumping-Lemma

  • Sei Σ ein Alphabet
  • L ∈ Σ* eine Sprache
  • Wortproblem L
    • Gegeben: w ∈ Σ*
    • Frage: Gilt w ∈ L?
  • Fragen:
    • Für durch DEAs gegebene Sprachen einfach: δ*(q0, w) ∈ F ?
    • Gibt es Sprachen, die nicht von einem DEA akzeptiert werden?
    • Wie zeigt man, dass eine Sprache von keinem DEA akzeptiert wird?
  • Beispiel:
    • Q = { q0,q1,q2}
    • Anfangszustand = q0
    • F = {q2} (Endzustände)
    • = A
    • L(A) = { w ∈ Σ*, δ(δ0,w) ∈ F } = { w ∈ { 0,1}* w hat mehr als eine Null und die Anzahl der Nullen ist gerade }
ε (leeres Wort)011000 
q0q1q1q1q2q1q2∈ F
  • Der Graph muss manche Zustände öfters besuchen, wenn ein Wort eine Länge hat, die größer ist als die Anzahl der Zustände. Es bilden sich dabei also Schleifen (rot markiert zur Hervorhebung).
  • Theoretisch lassen sich die Teilabschnitte der Zustände in Bereiche mit Schleifen zusammenfassen lassen: x y z, es wäre z.B. auch x y2 oder x y4 z auch ein gültiges Wort der Sprache.
  • Definition 2.10 ( Pumping Lemma)
    • Sei L eine von einem DEA akzeptierte Sprache.
    • Dann existiert n0 ∈ ℕ so, dass gilt: Jedes Wort w ∈ L mit |w| ≥ n0 lässt sich zerlegen in x y z mit:
      1. y ≠ ε (leeres Wort) und
      2. x yk z ∈ L für alle k ∈ N
  • Beispiel: Die Sprache L = {  an bn; n ∈ ℕ0 } wird von keinem DEA akzeptiert.
  • Beweis: Angenommen, L wird von einem DEA azeptiert ( Widerspruch herleiten ). Dann existiert nach dem Pumping-Lemma eine natürliche Zahl n0 ∈ ℕ so, dass für alle w ∈ L mit |w| ≥ n0 ( Mehr Buchstaben als Zustände) eine Zerlegung xyz mit …
    1. y ≠ ε (leeres Wort)
    2. x yk z ∈ L für alle k ∈ ℕ … existiert
  • Sei w ∈ L mit |w| ≥ n0, dann gilt w = an bn mit 2n ≥ n0.
  • Sei weiter x y z = w eine Zerlegung von w mit y ≠ ε (leeres Wort)
  • Ziel: Zeige  ( x y2 z ∉ L ) Dann ist das Pumping-Lemma nicht erfüllt und wir haben einen Widerspruch zur Voraussetzung ( = „L wird von einem DEA akzeptiert“ )
  • Fallunterscheidung: 
    1. Fall: y liegt ganz in an
    2. Fall: y liegt ganz in bn
    3. Fall: y hat sowohl a’s als auch b’s
  • zu 1: Dann existieren n1+n2+n3 mit x=an1, y=an2, z=an3*bn und n1+n2+n3 = n. Laut Pumping Lemma gilt dann auch x y2 z ∈ L. Da x y2 z = an1 * a2n2 * an3bn. Da n1+2*n2+n3 > n, ist das ein Widerspruch.

( w = aa…ab …..b // an = x, z=bn –> y kann in x, z oder in beiden liegen )

2.4 Abschlusseigenschaften

  • Definition 2.11: 
    • Seien L1 und L2Sprachen über dem Alphabet Σ, die jeweils von einem DEA akzeptiert werden. Dann werden auch die folgenden Sprachen akzeptiert:
    • L1 ∪ L2
    • ¬L1 = { w ∈ Σ*; w ∉ L1 }
    • L1 ∩ L2
    • L1 \ L2
    • L* L2 = { w1w2; w1 ∈ L1 und w2 ∈ L2 } 
  • Beweise:
    1. 1 & 5 kommen später
    2. Sei A = ( Q, Σ, q0, δ, F ) ein DEA für L1 (d.h. die von A akzeptierte Sprache ist L1 ↔ L(A) = L1 ) Dann akzeptiert ¬A = (Q, Σ, q0, δ, Q\F ) die Sprache ¬L1.
      1. L (¬A) = { w ∈ Σ*; δ* (q0, w) ∈ Q\F } ist das Gegenteil von L(A) = { w ∈ Σ*; δ* (q0, w) ∈ F }
    3. 3 zeigen wir gleich
    4. L1 \ L2 = L1 ∩ ¬L2
  • Aufgabe:
    • Seien L1 und L2 jeweils von den DEA A1=(Q1, Σ, q01,d1,F1) und A2 = (Q2, Σ, q02, δ2, F2) akzeptiert.
    • Ziel: Konstruktion eines DEAs für L1 ∩ L2
  • Beispiel:
    • L = { w ∈ {0,1}*; w hat gerade viele Nullen und gerade viele Einsen }
    • L1 = { w ∈  { 0,1 }*; w hat gerade viele Nullen }
    • L2 = { w ∈ {0,1}*; w hat gerade viele Einsen}
    • L=L1 ∩ L2
  • Wir definieren den sog. Produkautomaten:
    •  A=(Q1xQ2, Σ, (q01, q02), δ, F1xF2).
    • d: (Q1xQ2) x Σ → (Q1xQ2); ((q,p)a) → (d1, (q,a), δ2(q,a))
    • Q1xQ2 = { (q,z); q ∈ Q1, z ∈ Q2 }
  • Im Beispiel:
    • Q1xQ2= {(q0,z0), (q0,z1) , (q1,z0), (q1,z1) }
    • F1xF2 = { q0 } x { z0 } = { (q0,z0)}
    • δ((q0,z0),0) = (δ1, (q0,0), δ2(z0, 0)) → q1, z0
    • δ((q0,z0),1) = (δ1, (q0,1), δ2(z0, 1)) → q0, z1

Erläuterung: „Man verknüpft jeden Zustand aus Q1 mit jedem Zustand aus Q2 und setzt dann in die kombinierten Zustände die Buchstaben des Wortes ein. Man führt die Übergangsfunktion für die einzelnen Teile wie gewohnt mit dem Buchstaben aus, aber überführt dann aber wieder in den gemeinsamen Zustand“.

L1 ∩ L2

Bsp.:

  • L1= { an bm; n,m ∈ ℕ und n ≠ m } → nein
  • L2 =  { an bn; n ∈ ℕ } → nein
  • L3 = { an bm; n, m ∈ ℕ } → ja
  • ¬L1 = L2 

3) Produktautomaten

  • Sei A1 = ( Q1, Σ, q01, δ1, F1) ein DEA für L1
  • Sei A2 = (Q2, Σ, q02, δ2, F2) ein DEA für L2
  • Produktautomat : A=(Q1xQ2, Σ, (q01, q02) δ, F1xF2)

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.

Index