Perpotongan dua (minimal) DFA dengan n status dapat dihitung menggunakan O (n 2 ) waktu dan ruang. Ini optimal secara umum, karena DFA (minimal) yang dihasilkan mungkin memiliki n 2 status. Namun, jika DFA minimal yang dihasilkan memiliki status z, di mana z = O (n), dapatkah ia dihitung dalam ruang n 2-eps , untuk beberapa eps konstan> 0? Saya akan tertarik pada hasil seperti itu bahkan untuk kasus khusus di mana input DFA asiklik.
automata-theory
dfa
Rasmus Pagh
sumber
sumber
Jawaban:
Jawabannya adalah ya tanpa persyaratan tentang ukuran otomat. Ia dapat dihitung dalam ruang bahkan untuk DFAs di mana adalah konstanta.k kO(log2n) k k
Biarkan ( menjadi DFA. Kami menunjukkan bahwa, dengan , menghitung DFA minimal yang mengenali dapat dilakukan dalam spasi. Kami pertama-tama membuktikan beberapa hasil teknis.i ∈ [ k ] ) k ⟨ A 1 , ... , A k ⟩ L ( A 1 ) ∩ ⋯ ∩ L ( A k ) O ( log 2 n )Ai=(Qi,Σi,δi,zi,Fi) i∈[k]) k ⟨A1,…,Ak⟩ L(A1)∩⋯∩L(Ak) O(log2n)
Definisi 1 : Misalkan menjadi dua keadaan lalu iff ,q ≡ r ∀ w ∈ Σ ∗ q . w ∈ F ⇔ r . w ∈ Fq,r q≡r ∀w∈Σ∗ q.w∈F⇔r.w∈F
Kami sekarang mempertimbangkan otomat diberikan oleh konstruksi produk kartesius klasik. Biarkan dan menjadi negara .q = ( q 1 , ... , q k ) r = ( r 1 , ... , r k ) AA q=(q1,…,qk) r=(r1,…,rk) A
Lemma 1 : Memutuskan apakah ada di NL.q≡r
Bukti (sketsa): Kami menunjukkan bahwa pengujian ketidakseimbangan dalam NL dan menggunakan NL = coNL. Tebak kata (satu huruf pada saat itu) sedemikian rupa sehingga adalah kondisi akhir dan tidak. Ini dapat dicapai dengan menghitung dalam log-space untuk dan menggunakan fakta bahwa adalah final iff . Dapat ditunjukkan bahwa menyiratkan keberadaan dari ukuran-poli. q . w r . w q i . w , r i . w i ∈ [ k ] q q i ∈ F iw∈Σ∗ q.w r.w qi.w,ri.w i∈[k] q qi∈Fi∀i∈[k] q≢r w
Lemma 2 : Memutuskan apakah dapat diakses di NL.q
Bukti (sketsa): Tebak jalur (ukuran-poli) dari ke ( ).q i i ∈ [ k ]zi qi i∈[k]
Definisi 2 : Pertimbangkan keadaan dalam urutan leksikografis. Tentukan sebagai negara yang dapat diakses pertama dan negara yang dapat diakses pertama setelah yang tidak setara dengan keadaan sebelumnya. Kami mendefinisikan sebagai unik sedemikian rupa sehingga .s ( 1 ) s ( i ) s ( i - 1 ) c ( q ) i q ≡ s ( i )A s(1) s(i) s(i−1) c(q) i q≡s(i)
Lemma 3 : dapat dihitung dalam ruang .O ( log 2 n )s(i) O(log2n)
Bukti (sketsa): Definisi 2 menghasilkan suatu algoritma. Kami menggunakan counter untuk beralih ke negara bagian. Biarkan dan menjadi kondisi saat ini. Di setiap negara bagian, kami menggunakan lemma 2 untuk memverifikasi apakah dapat diakses. Jika ya, kami mengulangi setiap status sebelumnya dan kami memverifikasi apakah ada di antaranya yang setara dengan . Jika tidak ada, kami menambah dan output jika . Kalau tidak, kita menyimpan sebagai dan kami melanjutkan. Karena kami hanya menyimpan jumlah penghitung yang konstan dan pengujian kami dapat dilakukan dalamj ← 0 q q q j q j = i qk j←0 q q q j q j=i q NL ⊆ DSPACE ( log 2 n )s(j) NL⊆DSPACE(log2n) , ini melengkapi buktinya.
Akibat wajar 1 : dapat dihitung dalam ruang .O ( log 2 n )c(q) O(log2n)
Teorema : Meminimalkan dapat dilakukan dalam ruang .O ( log 2 n )A O(log2n)
Bukti (sketsa): Biarkanmenjadi terbesar sehingga didefinisikan (mis. jumlah kelas ). Kami memberikan algoritme yang mengeluarkan otomat manai s ( i ) ≡ A ′ = ( Q ′ , Σ , δ ′ , z ′ , F ′ )1≤m≤|Q0|⋯|Q1| i s(i) ≡ A′=(Q′,Σ,δ′,z′,F′)
Kami sekarang menunjukkan cara menghitung . Untuk setiap , hitung dan output transisi . Oleh lemma 3 dan akibat wajar 1, algoritma ini berjalan dalam ruang . Dapat diperiksa bahwa minimal dan . i ∈ [ m ] , a ∈ Σ q ← s ( i ) . a ( s ( i ) , a , s ( c ( q ) ) ) O ( log 2 n ) A ′ L ( A ′ ) = L ( A )δ′ i∈[m],a∈Σ q←s(i).a (s(i),a,s(c(q))) O(log2n) A′ L(A′)=L(A)
sumber
Dick Lipton dan rekannya baru-baru ini menangani masalah ini, dan Lipton menulis blog tentang itu di sini:
http://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/
Tampaknya melakukan lebih baik daripada O (n ^ 2) terbuka bahkan untuk kasus yang sangat khusus untuk menentukan apakah persimpangan DFA mendefinisikan bahasa kosong.
Makalah ini memberikan konsekuensi kompleksitas yang akan dihasilkan dari penanganan algoritma yang jauh lebih baik tidak hanya 2 DFA di persimpangan, tetapi jumlah yang lebih besar juga.
sumber
Jika Anda diberi k DFA (k adalah bagian dari input) dan ingin tahu apakah persimpangannya kosong, masalah ini umumnya selesai dengan PSPACE:
Mungkin jika Anda hati-hati mempelajari bukti ini (dan konstruksi serupa oleh Lipton dan rekan penulisnya), Anda mungkin menemukan semacam ruang dengan batas bawah bahkan untuk k tetap.
sumber
Diberikan dua automata , menerima bahasa berhingga (acyclic automata), kompleksitas negara ada di (1) . Hasil ini juga berlaku untuk DFA unary (belum tentu asiklik) (2) . Namun, Anda tampaknya berbicara tentang ruang yang diperlukan untuk menghitung persimpangan dua automata. Saya tidak melihat bagaimana konstruksi klasik menggunakan produk Cartesian menggunakan ruang . Yang Anda butuhkan hanyalah sejumlah konter ukuran logaritmik. Ketika Anda menghitung fungsi transisi untuk status baru Anda hanya perlu memindai input tanpa melihat ke data yang dihasilkan sebelumnya.A B L(A)∩L(B) Θ(|A|⋅|B|) O(n2) (q,r)
Mungkin Anda ingin menampilkan robot minimal? Jika ini masalahnya, maka saya tidak tahu apakah itu bisa dicapai. Kompleksitas keadaan persimpangan untuk bahasa yang terbatas tampaknya tidak menggembirakan. Namun, DFA unary memiliki kompleksitas keadaan yang sama dan saya pikir itu dapat dicapai dengan automata tersebut. Dengan menggunakan hasil dari (2) , Anda bisa mendapatkan ukuran yang tepat dari robot yang mengenali persimpangan. Ukuran ini dijelaskan oleh panjang ekor dan siklus, sehingga fungsi transisi dapat dengan mudah dihitung dengan sedikit ruang karena struktur sepenuhnya dijelaskan oleh dua ukuran tersebut. Kemudian, yang harus Anda lakukan adalah membuat set status akhir. Biarkan menjadi jumlah status dalam otomat yang dihasilkan, maka untuk semua ,1 ≤ i ≤ n i a i A Bn 1≤i≤n i adalah keadaan akhir IFF diterima oleh kedua dan . Tes ini dapat dilakukan dengan sedikit ruang.ai A B
sumber