Skript

1. Reguläre Ausdrücke

  • Übersicht und Syntax: Reguläre Ausdrücke umfassen Symbole wie ∅ (leere Menge), (leerer String) und Zeichen aus einer Menge . Sie können kombiniert werden durch Verkettung , Vereinigung und Kleene-Stern .
  • Redundanz in der Notation: kann als dargestellt werden, da die Sprache von , bezeichnet als , ist.
  • Reguläre Ausdrücke für spezifische Sprachen:
    • Sprache : Kann dargestellt werden als oder komplexe Kombinationen unter Verwendung von Paaren aus ‘s und ‘s.
    • Sprache : Kann mit Kombinationen von und den Buchstaben , bis zu viermal ausgedrückt werden.
    • Sprache : Dargestellt als .

2. Komplemente regulärer Ausdrücke

  • Fehlen eines direkten Komplement-Operators: Um das Komplement einer Sprache zu finden, die durch einen regulären Ausdruck beschrieben wird, wandelt man den regulären Ausdruck in einen nicht-deterministischen endlichen Automaten (NFA) um, diesen in einen deterministischen endlichen Automaten (DFA) und dann in einen DFA für das Komplement, und schließlich zurück in einen regulären Ausdruck.
  • Einfacherer Ansatz: Beschreibe die Sprache und ihr Komplement in einfachen Begriffen und leite direkt reguläre Ausdrücke ab.
    • Für die durch erzeugte Sprache schließt das Komplement Wörter ohne oder mit zwei oder mehr ‘s ein, repräsentiert als .

3. Abschlusseigenschaften regulärer Sprachen

  • Eigenschaften: Wenn und regulär sind, dann sind auch die Vereinigung, Schnitt, Konkatenation, Kleene-Stern und das Komplement regulär. Falsche Anwendungen dieser Eigenschaften können zu falschen Schlussfolgerungen über die Regularität bestimmter Sprachen führen.
  • Beispiele und Gegenbeispiele: Demonstrationen, die falsche Anwendungen der Eigenschaften verwenden, um zu behaupten, dass Sprachen wie regulär sind, was falsch ist.

4. Pumping Lemmas

  • Intuition und Definitionen:
    • Jede reguläre Sprache muss das Pumping Lemma erfüllen, das besagt, dass für jedes hinreichend lange Wort in der Sprache es in Teile zerlegt werden kann, wobei das wiederholte ‘v’ Teil jede Anzahl von Malen immer noch Wörter in der Sprache ergibt.
    • Anwendung: Wird verwendet, um die Nicht-Regularität zu beweisen, indem gezeigt wird, dass eine Sprache die Bedingungen des Pumping Lemmas nicht erfüllt.
  • Beispielbeweise: Detaillierte Beweise unter Verwendung des Pumping Lemmas, um die Nicht-Regularität von Sprachen, wie , zu zeigen, mit Schritten, die typische Fehler in der Anwendung und Argumentation hervorheben.

S.8 Quiz

Geben Sie einen regulären Ausdruck an, der

erzeugt.

Antwort:

  • Erklärung: Zuerst 4x a oder b dann am Ende kann alles kommen auch ein , da Kleene-Stern auch das leere Wort beinhaltet.

Aufgabe: NFA konstruieren

Konstruieren Sie mit dem Verfahren aus der Vorlesung einen NFA mit -Übergängen und eindeutigen Start- und Endzuständen, der als Sprache genau die durch den regulären Ausdruck

erzeugte Sprache akzeptiert.

Antwort: siehe Skript


S.15 Quiz

Die gegebene Bedingung lautet:

Aussagen:

a) Wenn nicht regulär ist, dann ist weder noch regulär.

  • Falsch: Es könnte sein, dass nur eine der Sprachen nicht regulär ist.

b) Wenn regulär ist, dann sind und regulär.

  • Falsch: Der Schnitt könnte auch aus anderen Gründen regulär sein.

c) Wenn nicht regulär ist und regulär ist, dann ist nicht regulär.

  • Richtig: Wenn regulär ist, muss nicht regulär sein, damit der Schnitt nicht regulär ist.

d) Wenn und jeweils nicht regulär sind, dann ist ebenfalls nicht regulär.

  • Falsch: Der Schnitt von zwei nicht regulären Sprachen kann regulär sein.

Fazit:

Nur Aussage c ist korrekt.

Tipp

Zwei reguläre Sprachen können einen nicht regulären Schnitt erzeugen

Nichtregularität zeigen mit Abschlusseigenschaften

Satz

ist nicht regulär.

Beweis

Durch Widerspruch. Nehme an, ist regulär.

Da regulär ist, muss (aufgrund der Abschlusseigenschaft für reguläre Sprachen) auch regulär sein.

Aber ist nicht regulär. Widerspruch.


3. Das Pumping-Lemma für reguläre Sprachen

Intuition hinter dem Pumping-Lemma

graph LR
  z0((z0)) -->|u| z1(( ))
  z1 -->|v| z1
  z1 -->|w| zm((zm))
  • Wenn ein DFA Zustände hat, dann müssen akzeptierte Wörter der Länge eine Schleife durchlaufen.
  • Diese Wörter kann man aufpumpen: , , , Man kann auch die Schleife überspringen: . Allgemein: für liegt in der erkannten Sprache.

Das Pumping-Lemma für reguläre Sprachen

Definition

Eine Sprache hat die Pumping-Eigenschaft (für reguläre Sprachen), wenn gilt: Es gibt eine Zahl , sodass jedes Wort , welches Mindestlänge hat (d.h. ), als geschrieben werden kann, sodass gilt:

  1. für alle : .

Lemma (Pumping-Lemma)

Jede reguläre Sprache hat die Pumping-Eigenschaft.

Quiz S.23

Quiz

Welche der folgenden Aussagen sind korrekte Formulierungen des Pumping-Lemmas?

a) Sei eine reguläre Sprache. Dann gilt für jede natürliche Zahl : Es gibt ein Wort aus , welches Mindestlänge hat, sodass es für jede Zerlegung mit und ein gibt mit liegt nicht in .

b) Sei eine Sprache. Dann ist regulär, genau dann, wenn es eine natürliche Zahl gibt, sodass jedes Wort aus , welches Mindestlänge hat, als geschrieben werden kann, mit , , und in liegt für alle .

c) Sei eine Sprache. Dann ist keinesfalls regulär, falls für jede natürliche Zahl gilt: Es gibt ein Wort aus , welches Mindestlänge hat, sodass es für jede Zerlegung mit und ein gibt mit liegt nicht in .

d) Sei eine reguläre Sprache. Dann gibt es eine natürliche Zahl , sodass jedes Wort aus , welches Mindestlänge hat, als geschrieben werden kann, mit , , und liegt in für alle .

e) Sei eine Sprache und es gibt eine natürliche Zahl , sodass jedes Wort aus , welches Mindestlänge hat, als geschrieben werden kann, mit , , und liegt in für alle . Dann ist regulär.

Antwort: c) und d).

Erklärung

  • c) Diese Aussage besagt, dass eine Sprache nicht regulär ist, wenn es für jede natürliche Zahl ein Wort in gibt, das sich nicht gemäß den Bedingungen des Pumping-Lemmas in aufpumpen lässt, sodass nicht in liegt. Diese Formulierung beschreibt korrekt die Negation des Pumping-Lemmas, die verwendet wird, um zu beweisen, dass eine Sprache nicht regulär ist.
  • d) Diese Aussage ist die positive Formulierung des Pumping-Lemmas für reguläre Sprachen. Sie besagt, dass für jede reguläre Sprache eine Zahl existiert, sodass jedes Wort in mit Mindestlänge in der Form geschrieben werden kann und alle gepumpten Versionen ebenfalls in liegen. Dies ist genau die Bedingung, die das Pumping-Lemma beschreibt.

Falsche Antworten

  • a) Diese Aussage ist eine Negation, aber sie enthält den Fehler, dass sie sagt, für jede Zerlegung existiert ein , sodass nicht in liegt. Dies ist nicht korrekt, da das Pumping-Lemma nur fordert, dass eine Zerlegung gefunden werden kann, die die Bedingungen erfüllt.
  • b) Diese Aussage beschreibt eine Bedingung, die sowohl notwendig als auch hinreichend für reguläre Sprachen ist. Das Pumping-Lemma ist jedoch nur eine notwendige Bedingung, keine hinreichende. Das bedeutet, dass es auch nicht reguläre Sprachen geben kann, die die Pumping-Eigenschaft erfüllen.
  • e) Diese Aussage ist falsch, weil das Pumping-Lemma nur eine notwendige Bedingung für reguläre Sprachen ist, nicht eine hinreichende. Das heißt, es gibt Sprachen, die die Pumping-Eigenschaft erfüllen, aber trotzdem nicht regulär sind.

Tipp

”genau dann wenn” Aussagen sollten einen stutzig machen bei Quizzes, da diese oftmals falsch sind.

Anwendung des Pumping-Lemmas

Sei eine Sprache, die wir als nicht regulär beweisen wollen.

Pumping-Lemma:

ist regulär hat die Pumping-Eigenschaft

Kontraposition:

hat nicht die Pumping-Eigenschaft ist nicht regulär

Beweisstrategie für die Aussage „ nicht regulär“:

  1. Durch die Kontraposition reicht es zu zeigen, dass die Pumping-Eigenschaft nicht hat.
  2. Zeige dies durch Widerspruch: Nehme an, dass die Pumping-Eigenschaft hat.
  3. Leite einen Widerspruch her.
  4. D.h. ist nicht regulär.

Beispiel: erfüllt die Pumping-Eigenschaft

Satz

erfüllt die Pumping-Eigenschaft.

Beweis

  1. Sei .
  2. Sei mit .
  3. Wir zerlegen mit , und das Suffix von ohne die ersten beiden Buchstaben.
  4. Da , ist und dann gilt: , . Daher gilt auch: für alle .

4. Das Pumping-Lemma für kontextfreie Sprachen (nur FSK)

Das Pumping-Lemma für kontextfreie Sprachen

Definition

Eine Sprache hat die Pumping-Eigenschaft (für kontextfreie Sprachen), wenn gilt: Es gibt eine Zahl , sodass jedes Wort , welches Mindestlänge hat (d.h. ), als geschrieben werden kann, sodass gilt:

  1. für alle : .

Lemma (Pumping-Lemma)

Jede kontextfreie Sprache hat die Pumping-Eigenschaft.

Aufgabe: Kontextfreiheit widerlegen

Aufgabe

Zeige, dass nicht kontextfrei ist.

Beweis

Mit dem Pumping-Lemma:

  • Sei beliebig.
  • Wir wählen . (Dann gilt und .)
  • Sei mit , und für alle .
  • Dann kann nicht zwei ‘s enthalten.
  • Fall enthält ein : Dann , da das entfernt wurde. Widerspruch.
  • Fall enthält kein : Dann , da maximal zwei -Folgen aufgepumpt wurden, die dritte -Folge aber noch aus vielen ‘s besteht (und die Trennung durch noch vorhanden ist). Widerspruch.

Erklärung

Das Pumping-Lemma für kontextfreie Sprachen:

Das Pumping-Lemma für kontextfreie Sprachen besagt, dass in einer kontextfreien Sprache jedes lange genug Wort so zerlegt werden kann, dass bestimmte Teile des Wortes (die als und bezeichnet werden) “aufgepumpt” werden können, ohne dass das Wort die Sprache verlässt. Dies bedeutet, dass man und beliebig oft wiederholen kann und das resultierende Wort immer noch in der Sprache ist.

Anwendung zur Widerlegung:

Um zu zeigen, dass eine Sprache nicht kontextfrei ist, wählt man ein Wort aus der Sprache, das lang genug ist, und zeigt, dass es keine Zerlegung gibt, die den Bedingungen des Pumping-Lemmas entspricht. In diesem Fall haben wir gezeigt, dass für das Wort jede mögliche Zerlegung entweder dazu führt, dass ein entfernt wird oder dass die Struktur der ‘s gestört wird, was beides zu einem Wort führt, das nicht mehr in der Sprache liegt. Damit haben wir bewiesen, dass nicht kontextfrei ist.