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.kk
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,rq≡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 .Aq=(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.wr.wqi.w,ri.wi∈[k]q∀ i ∈ [ k ] . Es kann gezeigt werden, dass q ≢ r die Existenz eines w mit Polygröße impliziert.qi∈Fi∀i∈[k]q≢rw
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 ] ).ziqii∈[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 .As(1)s(i)s(i−1)c(q)iq≡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önnenkj←0qqqjqj=iqs(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 .AO(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|is(i)≡A′=(Q′,Σ,δ′,z′,F′)
- Q ' = { s ( i ) : i ∈ [ m ] } ;Q′={s(i):i∈[m]}
- F ' = { q ≤ Q ' : q i ≤ F i∀ i ∈ [ k ] } ;F′={q∈Q′:qi∈Fi∀i∈[k]}
- z ' = s ( c ( q ) ) wobei q = ( z 0 , ... , z k ) .z′=s(c(q))q=(z0,…,zk)
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)