Eine Operation, die eine NFA in eine andere NFA umwandelt, dies jedoch nicht für eine DFA tut, ist die Umkehrung (alle Pfeile in die entgegengesetzte Richtung zeigen und Anfangszustände durch akzeptierende Zustände tauschen). Die Sprache, die vom transformierten Automaten erkannt wird, ist die umgekehrte Sprache .LR= { un - 1… U0∣ u0… Un - 1∈ L }
Eine Idee ist es daher, nach einer Sprache zu suchen, die asymmetrisch aufgebaut ist. Zukünftig sollte diese Sprache durch Überprüfen der ersten Symbole erkannt werden , wobei nur -Zustände erforderlich sind . In umgekehrter Richtung sollte es notwendig sein, die letzten Zustände zu speichern , wofür Zustände erforderlich sind , wobei die Alphabetgröße ist.n + O ( 1 ) n A n + O ( 1 ) Ann + O ( 1 )nEINn+ O ( 1 )EIN
Wir suchen nach einer Sprache der Form wobei aus Wörtern der Länge , eine nichttriviale Teilmenge des Alphabets ist und keine weitere Einschränkung bietet. Wir könnten genauso gut das einfachste Alphabet (ein Singleton-Alphabet reicht nicht, kleinere NFAs gibt es nicht) und . Ein nichttriviales bedeutet . Was , so verlangen wir, dass es nicht mit korreliert (damit der DFA für die umgekehrte Sprache das Gedächtnis von behalten muss ): takeM n n S M ' A = { a , b } M ' = A * S S = { a } M n S S M n = A nMnSM′MnnSM′A={a,b}M′=A∗SS={a}MnSSMn=An .
Also sei . Es wird von einem einfachen DFA mit Zuständen erkannt . n + 2Ln=(a|b)na(a|b)∗n+2
Das Umkehren ergibt eine NFA, die erkennt .LRn=(a|b)∗a(a|b)n
Der minimale DFA , der erkennt,
hat mindestens Zustände. Dies liegt daran, dass alle Wörter der Länge im DFA unterschiedliche Zustände erreichen müssen. (Mit anderen Worten, sie gehören zu verschiedenen Myhill-Nerode-Äquivalenzklassen .) Um dies zu beweisen, nehmen Sie zwei verschiedene Wörter und lassen eine Position sein, an der sie sich unterscheiden. ( ). wir ohne der Allgemeinheit an, und . Dann ist und ( ist eine unterscheidende Erweiterung für 2 n + 1LRn2n+1 u , v ∈ A n + 1 k u k ≠ v k u k = ein v k = b u b k ∈ L R n v b k ∉ L R n B k u v u v L R n u b k v b k2n+1u,v∈An+1kuk≠vkuk=avk=bubk∈LRnvbk∉LRnbku und ). Wenn und in einem DFA, der erkennt, zu demselben Zustand führen würden, würde dies und , was unmöglich ist, da einer zu einem akzeptierenden Zustand führt und der andere nicht.vuvLRnubkvbk
Danksagung: Dieses Beispiel wurde in Wikipedia ohne Erklärung zitiert . Der Artikel verweist auf einen Artikel, den ich nicht gelesen habe und der eine engere Grenze enthält:
Leiss, Ernst (1981), "Prägnante Darstellung regulärer Sprachen durch boolesche Automaten", Theoretical Computer Science 13 (3): 323–330, doi: 10.1016 / S0304-3975 (81) 80005-9 .