22. Reguläre Sprachen II

Satz: Ist L eine reguläre Sprache, so gibt es einen endlichen Automaten A, der L akzeptiert.

Beweis: Wieder konstruktiv über die fünf Eigenschaften regulärer Sprachen.

(1) ∅ wird von allen Automaten ohne Endzustände erzeugt

(2) Einzelne Zeichen aus dem Alphabet gehen mit

{ B   wenn  x = ai
δ (S, x) =   C   sonst
δ(B, x) = C

δ(C, x) = C,

wenn nur B ein Endzustand ist – d.h., das gesuchte Zeichen treibt den Automaten in den Endzustand, jedes andere oder ein weiteres in einen nicht-akzeptierenden.

(3) Vereinigung: Φ1 und Φ2 disambiguieren wie gehabt, einen neuen Startzustand machen, der als Folgezustände die Folgezustände der alten Startzustände hat. Das geht, weil nicht zwischen Φ1 und Φ2 gesprungen wird. Der neue Startzustand muss in die neuen Endzustände aufgenommen werden, wenn einer der alten Startzustände Endzustand war.

(4) Verkettung: Startzustand von A1 wird neuer Startzustand, alle Endzustände von A1 werden mit den Startzuständen von A2 vereinigt (und nicht in F aufgenommen, es sei denn Startzustand von A2 ist in F2), Endzustände sind F2

(5) Sternbildung: Startzustand wird zu Endzustand (wg. ϵ). Dann alle Endzustände wieder auf Startzustand verweisen lassen.

Diesen Satz hätten wir eigentlich gar nicht mehr beweisen müssen. Aus der Äquivalenz von einseitig linearen Grammatiken und regulären Ausdrücken auf der einen und der zwischen einseitig linearen Grammatiken DEAs auf der anderen Seite folgt nämlich sogar die Äquvialenz von DEAs und regulären Ausdrücken.

Abschlusseigenschaften

Da Sprachen zunächst nur Mengen sind, kann man durch die üblichen Mengenoperationen neue Sprachen erzeugen – es wäre beispielsweise toll, wenn man eine Grammatik für Hauptsätze hätte und eine für Relativsätze und durch Vereinigung eine Grammatik bekäme, die beides abdeckt. Die Frage ist aber: gibt es für die – in diesem Fall – vereinigte Menge immer noch eine – beispielsweise – reguläre Grammatik?

Seien L1, L2 zwei reguläre Sprachen. Dann sind L1L2, L1L2 und Li* trivial regulär.

Σ* \L=L ist regulär: Es existiert ein Automat A= ⟨Φ,Σ,δ,S,F⟩, der L akezptiert. Der Automat A‘ = ⟨Φ,Σ,δ,S,Φ \F⟩ akzeptiert genau alle Wörter nicht, die A nach F treiben und endet für alle anderen in einem Endzustand, akzeptiert also L. Daher muss L regulär sein

L1 L2 =L1L2 (deMorgan), Regularität ist aber unter Vereinigung und Komplementbildung erhalten.

L1 \L2 = L1L2, also auch regulär.

Das Pumping Lemma

Satz: Zu jeder regulären Sprache L existiert eine Zahl n, so dass sich alle wL mit |w|≥n als w= xyz darstellen lassen mit

  • x,y,z∈Σ*
  • |y|≥ 1
  • |xy|≤n
  • xyi zL.

Beweis: Der entscheidende Punkt ist die vierte Bedingung. Weil L regulär, gibt es einen Automaten A mit Zuständen T i (i= 1,,n), der L akzeptiert.

Wenn es kein w mit |w|≥n gibt, ist nichts zu beweisen. Sei also |w|≥n. Dann wird mindestens ein Tk mehrfach durchlaufen. Wir zerlegen w, so dass

δδ**((TSk,, xy)) = = TTkk
 *
δ (Tk, z) ∈ F.

Durch triviale Induktion folgt damit, dass auch xyiz in von A akzeptiert und damit in L ist.

In Prosa: Wörter in ausreichend komplexen regulären Sprachen lassen sich “normalerweise” aufblasen. Deshalb lassen sich balancierte Klammern nicht mit regulären Ausdrücken prüfen:

Satz: L= {aibai} ist nicht regulär.

Beweis: Annahme: L ist regulär. Sei i, so dass z= aibai länger als n aus dem Pumping Lemma ist. Dann gibt es eine Zerlegung z= uvw mit vϵ. Da nach Pumping Lemma auch uvjwL, ist kein b in v. Also muss v= al mit l > 0 sein. Damit liegt auch ai+lbai (wenn b in w ist) oder aibai+l (sonst) in L, Widerspruch.

Satz: L= {ap|p Quadratzahl} ist nicht regulär.

Beweis: L enthält auf jeden Fall Wörter, die länger als n aus dem Pumping Lemma sind. OBdA n > 1. Sei nun speziell p= n2. Dann ist w= xyz und |xy|< n sowie |y|≥ 1 nach Pumping Lemma. Außerdem ist xy2zL (Vorsicht: Hier haben wir zwei Bedeutungen der Potenz: In n2 bedeutet es das gewohnte Quadrat, in y2 die Verkettung).

Jetzt ist

2
n  = |xyz|                                Nach  Konstruktion
   < |xy2z |                    Weil |y2| > |y | wegen |y | ≥ 1

   = |xyz| + |y |
   ≤ n2 + n             wegen  |xy| ≤ n, insbesondere |y| ≤ n

   < n2 + 2n +  1
            2
   = (n + 1) .

Damit liegt |xy2z| zwischen zwei aufeinanderfolgenden Quadratzahlen, kann also selbst keine Quadratzahl sein.

Übungen zu diesem Abschnitt

Ihr solltet euch wenigstens an den rötlich unterlegten Aufgaben versuchen

(1)

Das Wort amtmta über dem Alphabet {a,m,t} möge von einem Automaten akzeptiert werden können, der drei Zustände hat. Schließt daraus, dass die von dem Automaten erzeugte Sprache unendlich ist.


Markus Demleitner

Copyright Notice