Der Schnittpunkt zweier (minimaler) DFAs mit n Zuständen kann unter Verwendung von O (n 2 ) Zeit und Raum berechnet werden . Dies ist im Allgemeinen optimal, da der resultierende (minimale) DFA n 2 Zustände haben kann. Wenn der resultierende minimale DFA jedoch z-Zustände hat, wobei z = O (n), kann er im Raum n 2-eps für eine Konstante eps> 0 berechnet werden ? Ein solches Ergebnis würde mich auch für den Sonderfall interessieren, bei dem die Eingabe-DFAs azyklisch sind.
automata-theory
dfa
Rasmus Pagh
quelle
quelle
Antworten:
Die Antwort lautet Ja, ohne dass die Größe des Automaten geändert werden muss. Sie kann auch für k DFAs, bei denen k eine Konstante ist, im O-O(log2n) Raum ( log 2 n ) berechnet werden.k k
Let A i = ( Q i , Σ i , δ i , z i , F i ) ( i ∈ [ k ] ) sein k DFAs. Wir zeigen , daß, da ⟨ A 1 , ... , A k ⟩ , das Berechnen der minimalen DFA Erkennen L ( A 1 ) ∩ ⋯ ∩ L ( A k ) kann durchgeführt werden in OAi=(Qi,Σi,δi,zi,Fi) i∈[k]) k ⟨A1,…,Ak⟩ L(A1)∩⋯∩L(Ak) ( log 2 n ) Leerzeichen. Wir beweisen zunächst einige technische Ergebnisse.O(log2n)
Definition 1 : Let q , r zwei Zustände dann q ≡ r iff ∀ w & egr ; & Sgr; * , q . w ∈ F ⇔ r . w ∈ Fq,r q≡r ∀w∈Σ∗ q.w∈F⇔r.w∈F
Wir betrachten nun den Automaten A , der durch die klassische kartesische Produktkonstruktion gegeben ist. Lassen q = ( q 1 , ... , Q k ) und r = ( r 1 , ... , r k ) Zustände von Be A .A q=(q1,…,qk) r=(r1,…,rk) A
Lemma 1 : Entscheiden, ob q ≡ r in NL ist.q≡r
Beweis (Skizze): Wir zeigen, dass die Testungleichwertigkeit in NL vorliegt und verwenden NL = coNL. Erraten ein Wort w ∈ & Sigma; * (ein Buchstabe zu der Zeit) , so dass q . w ist ein Endzustand und r . w ist nicht. Dies kann durch Berechnung von q i erreicht werden . w , r i . w im log-Raum für i ∈ [ k ] und unter Verwendung der Tatsache, dass q final ist, wenn q i ∈ F i istw∈Σ∗ q.w r.w qi.w,ri.w i∈[k] q ∀ i ∈ [ k ] . Es kann gezeigt werden, dass q ≢ r die Existenz eines w mit Polygröße impliziert.qi∈Fi∀i∈[k] q≢r w
Lemma 2 : Entscheiden, ob q (in) zugänglich ist, ist in NL.q
Beweis (Skizze): Errate (Poly-Größe) Pfade von z i zu q i ( i ∈ [ k ] ).zi qi i∈[k]
Definition 2 : Betrachten Sie die Zustände von A in lexikographischer Reihenfolge. Definieren Sie s ( 1 ) als den ersten zugänglichen Zustand und s ( i ) als den ersten zugänglichen Zustand nach s ( i - 1 ), der keinem vorherigen Zustand entspricht. Wir definieren c ( q ) als das eindeutige i, so dass q ≡ s ( i ) ist .A s(1) s(i) s(i−1) c(q) i q≡s(i)
Lemma 3 : s ( i ) kann im O- Raum ( log 2 n ) berechnet werden.s(i) O(log2n)
Beweis (Skizze): Definition 2 liefert einen Algorithmus. Wir verwenden k Zähler, um über die Zustände zu iterieren. Sei j ← 0 und q der aktuelle Zustand. In jedem Zustand verwenden wir Lemma 2, um zu überprüfen, ob auf q zugegriffen werden kann. Wenn dies der Fall ist, durchlaufen wir alle vorherigen Zustände und überprüfen, ob einer von ihnen q entspricht . Wenn es keine gibt, erhöhen wir j und geben q aus, wenn j = i ist . Andernfalls speichern wir q als s ( j ) und fahren fort. Da wir nur eine konstante Anzahl von Zählern speichern und unsere Tests in NL durchgeführt werden könnenk j←0 q q q j q j=i q s(j) ⊆ DSPACE ( log 2 n ) , hiermit ist der Beweis abgeschlossen.NL⊆DSPACE(log2n)
Folgerung 1 : c ( q ) kann im O- Raum ( log 2 n ) berechnet werden.c(q) O(log2n)
Theorem : Die Minimierung von A kann im O- Raum ( log 2 n ) erfolgen .A O(log2n)
Beweis (Skizze): Sei 1 ≤ m ≤ | Q 0 | ⋯ | Q 1 | sei das größte i, so dass s ( i ) definiert ist (dh die Anzahl der Klassen von ≡ ). Wir geben einen Algorithmus an, der einen Automaten A ' = ( Q ' , Σ , δ ' , z ' , F ' ) ausgibt , wobei1≤m≤|Q0|⋯|Q1| i s(i) ≡ A′=(Q′,Σ,δ′,z′,F′)
Wir zeigen nun, wie man δ ′ berechnet . Für jedes i ∈ [ m ] , ein ∈ & Sigma; , compute q ← s ( i ) . a und Ausgang der Übergang ( s ( i ) , a , s ( c ( q ) ) ) . Nach Lemma 3 und Korollar 1 läuft dieser Algorithmus im O- Raum ( log 2 n ) . Es kann überprüft werden, dass A 'δ′ i∈[m],a∈Σ q←s(i).a (s(i),a,s(c(q))) O(log2n) A′ ist minimal und L ( A ' ) = L ( A ) .L(A′)=L(A)
quelle
Dick Lipton und Kollegen haben kürzlich an diesem Problem gearbeitet, und Lipton hat hier darüber gebloggt:
http://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/
Es sieht so aus, als ob eine bessere Leistung als O (n ^ 2) auch für den ganz speziellen Fall offen ist, bei dem festgestellt wird, ob die DFA-Schnittmenge die leere Sprache definiert.
Der Aufsatz enthält Konsequenzen für die Komplexität, die sich aus einem stark verbesserten Algorithmus ergeben würden, der nicht nur 2 DFAs in der Schnittmenge, sondern auch größere Zahlen verarbeitet.
quelle
Wenn Sie k DFAs erhalten (k ist Teil der Eingabe) und wissen möchten, ob ihre Schnittmenge leer ist, ist dieses Problem im Allgemeinen PSPACE-vollständig:
Wenn Sie diesen Beweis (und ähnliche Konstruktionen von Lipton und seinen Co-Autoren) sorgfältig studieren, finden Sie möglicherweise eine Art Raumuntergrenze, selbst für festes k.
quelle
Bei zwei Automaten A , B , die endliche Sprachen akzeptieren (azyklische Automaten), ist die Zustandskomplexität von L ( A ) ∩ L ( B ) in Θ ( | A | ⋅ | B | ) (1) . Dieses Ergebnis gilt auch für unäre DFAs (nicht unbedingt azyklisch) (2) . Sie scheinen jedoch über den Platz zu sprechen, der für die Berechnung der Schnittmenge zweier Automaten erforderlich ist. Ich verstehe nicht, wie die klassische Konstruktion mit dem kartesischen Produkt O ( n 2 ) verwendet.A B L(A)∩L(B) Θ(|A|⋅|B|) O(n2) Platz. Sie benötigen lediglich eine konstante Anzahl von Zählern mit logarithmischer Größe. Wenn Sie die Übergangsfunktion für den neuen Status ( q , r ) berechnen , müssen Sie nur die Eingabe scannen, ohne zuvor generierte Daten zu überprüfen.(q,r)
Vielleicht möchten Sie den Minimalautomaten ausgeben? Wenn dies der Fall ist, habe ich keine Ahnung, ob es erreicht werden kann. Die staatliche Komplexität der Schnittmenge für endliche Sprachen scheint nicht ermutigend. Unäre DFAs haben jedoch die gleiche Zustandskomplexität, und ich denke, dass dies mit solchen Automaten erreicht werden kann. Mit den Ergebnissen aus (2) können Sie die genaue Größe des Automaten ermitteln, der die Kreuzung erkennt. Diese Größe wird durch die Länge des Schwanzes und des Zyklus beschrieben, daher kann die Übergangsfunktion leicht mit sehr wenig Raum berechnet werden, da die Struktur vollständig durch diese beiden Größen beschrieben wird. Dann müssen Sie nur noch den Satz der Endzustände erzeugen. Sei n die Anzahl der Zustände im resultierenden Automaten, dann für alle 1 ≤ in ≤ n , Zustand i ist ein Endzustand, wenn a i sowohl von A als auch von B akzeptiert wird. Dieser Test kann mit wenig Platz durchgeführt werden.1≤i≤n i ai A B
quelle