date-created: 2024-04-30 12:22:25 date-modified: 2024-05-07 10:01:52

nicht reguläre Sprachen |

anchored to 112.00_anchor_overview proceeds from and requires 112.05_regular_expressions 112.03_reguläre_sprachen

Overview | Gibt es nicht reguläre Sprachen?

Vermutlich ja! -> wir haben ja gesehen, dass endliche AUTOMATEN DFAS und NFAS kein großes Gedächtnis haben. Wir können hier etwa erkennen, dass diese Automaten nicht zählen können!

Ferner betrachten wir eine beispielhafte Sprache, welche nicht durch einen NFA / DFA oder einer RegEx dargestellt werden kann: Warum diese Sprache nicht erkannt werden kann? Sie muss zählen können, was man mit kleinen Quantitäten vielleicht noch kann (einfach für jede Möglichkeit einen Zustand und dann am Ende einen akzeptierenden), aber wir wollen das hier für beliebige Zahlen ermöglichen! Das ist mit einer endlichen Zustandsmenge nicht möglich!

[!Important] Muster in regulären Sprachen Betrachten wir eine reguläre SPrache, dann haben wir bei diesen meist ein Muster, was beliebige Mengen / oder eindeutige Mengen konkateniert mit anderen darstellt. Ferner werden wir kein Muster sehen, dass uns etwa zählen lassen wird/muss, um ein Wort zu konstruieren.

Finden von nicht regulären Sprachen?

Wir wissen also, dass es einen Raum gibt, der scheinbar nicht regulär sein kann. Dieses Konzept möchten wir ferner unter Betrachtung des Pumping-Lemmas beweisen können.

[!Tip] Grundlagen

Wir gehen davon aus, dass es nicht reguläre Sprachen gibt.

Als Grundlage haben wir folgende Eigenschaften und Informationen:

welchen zwei Aspekte können wir über Sprachen in REG treffen? #card

  • Jede Sprache wird von einem endlichen regulären Ausdruck beschrieben
  • Jedes Sprache kann man auch mit einem DFA / NFA darstellen ( beide sind gleichwertig)

Unter Betrachtung dieser Prämisse möchten wir dann jetzt das Pumping-Lemma betrachten, welches zeigen kann, dass eine Sprache nicht regulär ist (und somit nicht von einem DFA /NFA entschieden werden kann)

Hieraus können wir folgende Idee schöpfen: 112.07_pumping_lemma

Pumping - Lemma


[!Attention] Fähigkeit vom Pumping Lemma Das Pumping-Lemma liefert nur die Möglichkeit zu zeigen, dass eine Sprache nicht regulär ist ( nichts weiteres ist möglich)

vollständige Charakterisierung von

Wir möchten schauen, ob es ein vollständiges Kriterium gibt, mit welchem wir jetzt die Regulären Sprachen charakterisieren könnten/können.

unterscheidende Erweiterung (einer Sprache)

Wir möchten für die obige Vermutung / Suche jetzt eine neue Definition einführen:

[!Definition] Kongruenz | unterscheidende Erweiterung

Sei eine Sprache über und ferner (beide müssen nicht in der Sprache sein!) Wir nennen jetzt ein weiteres Wort unterscheidende Erweiterung, wenn gilt:

Welche zwei Attribute müssen gelten? Wann nennen wir die Worte dann kongruent? #card

  1. oder
  2. Es muss also in der Kombination mit einem anderen Wort in der Sprache enthalten sein!

Ferner bezeichen wir dabei jetzt zwei Worte als (nerode)kongruent und beschreiben sie mit gen dann, wenn es für diese beiden Wort keine unterscheidende Erweiterung gibt. Das heißt jetzt also ferner: und somit auch:

[!Tip] Äquivalenzrelation Ferner ist die Struktur jetzt eine Äquivalenzrelation, denn folgende Attribute werden eingehalten welche 3? #card Reflexiv: Symmetrisch: (ähnliches Argument wie obig, kann man umstellen) transitiv: , ferner also: und somit gilt die entsprechend Äquivalenz

[!Attention] Es können somit Äquivalenzklassen aufgebaut werden!

Theorem | Myhill-Nerode

Aus der obigen Vorbetrachtung können wir jetzt ein neues Theorem betrachten - von Myhill-Nerode:

[!Definition] Theorem | Myhill-Nerode was besagt es? #card Eine Sprache ist regulär, genau dann, wenn sie endlich viele Äquivalenzklassen unter aufweist. Diese endliche Zahl an Äquivalenzklassen, was den Index von beschreibt, ist dann genau die Anzahl an Zuständen des minimalen deterministischen endlichen Automaten, der diese Sprache erkennen kann! –> Er ist damit also eindeutig ( wobei es Isomorphe Automaten geben kann).

Beweis des Theorem

Da es eine Äquivalenz ist, muss man hier auch beide Seiten beweisen.

Beweis: Sei eine reguläre Sprache und ein DFA mit Wir möchten jetzt eine Äquivalenzrelation betrachten. Es gilt genau dann, wenn – also der Automat auf zu den gleichen Zuständen übergeht. Wir haben dann hier eine erste offentsichtliche Äquivalenzrelation gefunden!

[!Tip] ist auch eine Äquivalenrelation!

Wir zeigen jetzt, dass impliziert, also eine weitere Äquivalenzrelation. Sei demnach dann , also wieder . Für ein beliebiges folgt jetzt: und somit haben wir die Translation gezeigt!

Wenn jetzt , dann hat die Äquivalenzrelation mindestens den Index von - also wir können die Kleen’sche Hülle in gleich viel Klassen aufteilen!. –> Aber der Index von ist die Zahl der Zustände, die von aus erreichbar sind. Demnach sind sie höchstens:

Ferner noch der Beweis in die andere Richtung

Beweis: Wenn der Index von endlich ist, dann gibt es endlich viele Wörter sodass die Konkatenation der Äquivalenzklassen ist!. Wir definieren dann einen Automaten der genau diese Klassen als die Zustände aufweist: Aus der Definition der Übergangsfunktion gilt jetzt: und somit haben wir gezeigt, dass dieser Automat existiert und minimal ist!

Wir können ferner jetzt diverse Äquivalenzklassen generieren, das heißt eine Kombination wird folglich dann äquivalent zu einem bestimmten Wort sein.

[!Info] Nerode-Relation Die Nerode-Relation gehört zu einem Automaten, wobei dieser sehr schlau/gut ist, weil er das obige Problem sehr effizient lösen kann

Minimalautomat |

Die Nerode-Relation lässt eine Klassifizierung von Wörtern in Äquivalenzklassen zu und uns daraus konzeptuell einen Automaten bilden. Dieser Automat wird als Minimalautomat bezeichnet, wenn man ihn umsetzt.

Es folgt daraus ein Korollar:

[!Korollar] Minimalautomat ist eindeutig warum, wie konstruieren wir ihn? #card Sei jetzt. Dann können wir den obig konstruierten Äquivalenzklassenautomaten als den Automaten mit der kleinsten Anzahl von Zuständen, die erkennen können, beschreiben.

Dieser Minimalautomat ist bis auf eine Isomorphie eindeutig bestimmt!

Beweis: Auch hier handelt es sich um eine Äquivalenz, weswegen wir beidseitig beweisen können / müssen:

Wir haben obig bereits gesehen, dass für jeden Automaten gilt, dass eine Verfeinerung von ist - weil diese Äqui mindestens den Indexvon haben muss. Und daher gilt auch . Aber für jedes mit sind dann auch identisch, weil sie die gleiche Anzahl an Äqui-Klassen haben und weil sie die gleiche Sprache erkennen: . Somit ist dann der Automat mit der kleinsten Anzahl an Zuständen, der erkennen kann!

[!Info] Konstruktion Minimalautomat effizient Es ist möglich den Minimalautomaten effizient zu konstruieren: Sei ein DFA gegeben. Wir suchen dann gezielt nach Paaren von Zuständen sodass und dann können wir sie verschmelzen. Das ganze suchen und verschmelzen kann man in machen - man muss alle Paare probieren, und die Suche auf Wörter beschränken kann. –> Diese Betrachtung scheint zu sein, ist es aber nicht xd Ein Beweis liefer etwa Schöning S.38

Entscheidbarkeit auf

Wir können fur Sprachen divers Fragen formulieren, die man entsprechend beantworten kann.

[!Important] Wortproblem was beschreibt es? #card Sei und ein DFA. Ist jetzt Wir können es linear entscheiden –> wir lassen es einfach von verarbeiten und schauen, ob er akzeptiert oder nicht!

[!Tip] Leerheitsproblem: Sei ein DFA gegeben, ist ? #card Das Problem können wir entscheiden, denn ist genau dann leer, wenn es keinen Pfad von gibt

[!Tip] Endlichkeitsproblem: Sei ein DFA gegeben: ist ? #card Auch das können wir entscheiden: Sei dafür . Dann folgt aus dem 112.07_pumping_lemma jetzt: Also wir können alle Worte der Länge probieren und prüfen

[!Tip] Schnittproblem: Seien DFAs gegeben, was ist ? #card Auch das können wir entscheiden: Dafür konstruieren wir den Schnittautomaten und können anschließend schauen, ob der Automat akzeptierende Zustände hat.

[!Tip] Äquivalenzproblem: Seien DFA ist ? #card Auch das können wir in lösen: Wir bauen dafür den Minimalautomaten von und prüfen dann auf Isomorphie –> er ist ja eindeutig pro Sprache!