Sprachen, die von modifizierten Versionen endlicher Automaten akzeptiert werden


16

Ein deterministischer endlicher Automat (DFA) ist ein Zustandsmaschinenmodell, das alle und nur reguläre Sprachen akzeptieren kann. DFAs können (und werden in der Regel) so definiert, dass jeder Status einen Übergang für alle Elemente des Eingabealphabets bereitstellen muss. Mit anderen Worten, die Übergangsfunktion sollte eine (Gesamt-) Funktion sein.δ:Q×ΣQ

Stellen Sie sich vor, was wir einen doppelt deterministischen endlichen Automaten (DDFA) nennen werden. Es wird ähnlich wie ein DFA definiert, mit zwei Ausnahmen: Erstens muss der Übergang, der für jedes mögliche Eingabesymbol von einem Zustand in einen anderen Zustand führt, zu zwei unterschiedlichen Zuständen führen. Zweitens müssen alle potenziellen Pfade eine der folgenden Bedingungen erfüllen, um eine Zeichenfolge zu akzeptieren:

  1. Alle möglichen Pfade durch den DDFA führen zu einem akzeptierenden Zustand (wir werden dies einen DDFA vom Typ 1 nennen).
  2. Alle potenziellen Pfade durch den DDFA führen zu demselben akzeptierenden Zustand (wir werden dies einen DDFA vom Typ 2 nennen).

Nun zu meiner Frage:

Welche Sprachen akzeptieren DDFAs des Typs 1 und 2? Insbesondere ist es der Fall, dass , oder ? In dem Fall, dass , gibt es eine einfache Beschreibung von ?L(DFA)L(DDFA)L(DDFA)=L(DFA)L(DDFA)L(DFA)L(DDFA)L(DFA)L(DDFA)

Beweise (oder zumindest mäßig ausgearbeitete Skizzen) werden geschätzt, wenn sie nicht zu kompliziert sind.

Antworten:


9

Zusammen mit Alex 'Antwort ergibt dies ein vollständiges Bild.

L(DDFA)L(DFA) kann durch Anpassen der üblichen Powerset-Konstruktion mit einer modifizierten Endzustandsbedingung nachgewiesen werden. In der Kraftsatzkonstruktion sind Zustände Sätze von Zuständen des ursprünglichen Automaten. Normalerweise ist ein Zustand nach Durchführung der Powerset-Konstruktion endgültig, wenn einer der Zustände im Satz im ursprünglichen Automaten endgültig ist.

  • In DDFA Typ 1 sind die Endzustände im konstruierten Automaten die Mengen, in denen alle Elemente im ursprünglichen Automaten endgültig sind.

  • In DDFA Typ 2 sind Endzustände die Singleton-Mengen der Endzustände des ursprünglichen Automaten.

In beiden Fällen sind die resultierenden Automaten DFAs.

Jetzt können Typ-2DDFAs nur die Sprachen und ausdrücken , je nachdem, ob der Startzustand akzeptiert wird oder nicht. Dies liegt daran, dass die beiden Übergänge von einem Zustand zu unterschiedlichen Zuständen führen müssen, eine Akzeptanz jedoch nur möglich ist, wenn sie im selben Zustand enden.{ϵ}


7

Um die Analyse zu starten, kann ich sagen, dass für Typ-1.L(DFA)L(DDFA)

Sie können dies tun, indem Sie einen DFA duplizieren und Kanten zu duplizierten Zuständen hinzufügen. Wenn ein Staat einen Übergang zu hat auf , machen Sie einen Übergang von zu auf als auch. Außerdem hat auf einen Übergang zu und . Offensichtlich bedeutet dies, dass wir uns fast immer zur gleichen Zeit in den Zuständen und (oder möglicherweise zunächst nur in ) und daher dieselbe Sprache erkennen.s1s2xs1s2xs1s2s2xsisisi

Update: Wir haben auch für Typ-2, da es keinen Typ-2-DDFA gibt, der die Sprache erkennt . Wenn Sie versuchen, einen solchen DDFA zu erstellen, haben Sie einen Startzustand und dann müssen Sie zwei ausgehende Flanken zu den Zuständen und auf einem , aber diese Zustände müssen unterschiedlich sein, und daher enden die beiden akzeptierenden Pfade in unterschiedlichen Zustände akzeptieren.{ a } s s 1 s 2 aL(DFA)L(DDFA){a}ss1s2a

Zusammen mit der Antwort von Dave Clarke erhalten Sie die vollständige Analyse.


Sehr schön, dieses Gegenbeispiel für Typ 2 zu erkennen!
Dave Clarke

@ Dave Clarke: danke. Es ist ein dummes Beispiel, aber es funktioniert :)
Alex ten Brink

"Pathologisch" anstelle von "albern".
Dave Clarke

Sehr gute Arbeit, Jungs. Es gab vier Dinge zu überprüfen, und jeder von Ihnen bekam zwei. Wenn keiner von Ihnen etwas dagegen hat, werde ich @ DaveClarke als Antwort auswählen, nur weil er weniger Repräsentanten als Alex hat.
Patrick87

1
Möchten Sie zu einem verwandten Thema die von DDFAs des Typs 2 akzeptierten Sprachen näher erläutern, oder sollte ich eine separate Frage stellen und einen Link zu dieser erstellen?
Patrick87
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.