NFA dengan jumlah negara eksponensial ketika dideminisasi


10

Bagaimana saya bisa membangun contoh DFA yang memiliki menyatakan di mana NFA setara memiliki menyatakan. Jelas negara-set DFA harus berisi semua himpunan bagian dari negara-set NFA, tapi saya tidak tahu bagaimana memulainya. Ada saran untuk menempatkan saya di jalur yang benar?2nn


Pertanyaan ini agak tidak jelas. Secara umum, ada banyak DFA setara yang tak terhingga untuk setiap bahasa reguler yang diberikan, dan tak terhingga banyaknya NFA yang setara untuk setiap bahasa reguler yang diberikan. Jika Anda menginginkan DFA minimal dengan status , ini tidak selalu mungkin, karena NFA yang berbeda dapat mengenali bahasa yang sama dan memiliki jumlah status yang berbeda, tetapi sesuai dengan DFA minimal yang sama. Jika, selain itu, Anda hanya ingin mempertimbangkan NFA "minimal", ini menjadi agak lebih menarik ...2n
Patrick87

2
Patrick, saya pikir OP berarti contoh di mana DFA minimal secara eksponensial lebih besar daripada NFA minimal.
Yuval Filmus

@ Patrick87 Saya tidak mencari algoritma. Yang saya inginkan adalah contoh dari sepasang mesin: DFA dengan state dan NFA dengan menyatakan menerima bahasa yang sama. 2nn
saadtaame

@saadtaame: Itu sepele: ambil DFA apa pun dan tambahkan cukup status untuk mencapai . Contoh yang menarik adalah mereka yang memiliki DFA setara minimal memiliki banyak negara. 2n
Raphael

1
Perhatikan bahwa artikel Wikipedia tentang minimasi DFA mereferensikan contoh yang sesuai (meskipun Anda harus mencari tahu sendiri NFA kecil).
Raphael

Jawaban:


18

Contoh standar adalah bahasa dari semua kata di atas alfabet A dengan ukuran n yang tidak mengandung semua huruf yang berbeda. Ada NFA yang menerima L dengan n + 1 status (atau n menyatakan jika Anda mengizinkan beberapa status awal): pertama tebak huruf a yang hilang, kemudian pergi (dengan ϵ- pindah) ke status penerima dengan loop otomatis untuk semua huruf selain A .LAnLn+1naϵA

Setiap DFA untuk membutuhkan setidaknya 2 n status. Ini dapat dilihat menggunakan teorema Myhill-Nerode. Misalkan S 1 , S 2 menjadi dua himpunan bagian yang berbeda dari kata A , dan w ( S 1 ) , w ( S 2 ) yang masing-masing berisi semua dan hanya huruf dalam S 1 , S 2 . Tanpa kehilangan keumuman, anggap a S 1S 2 , dan biarkan w = w (L2nS1,S2Aw(S1),w(S2)S1,S2aS1S2 . Kemudian w ( S 1 ) w L sementara w ( S 2 ) w L .w=w(Aa)w(S1)wLw(S2)wL


10

ini adalah latihan dalam buku "Finite Automata" oleh Mark V. Lawson Heriot-Watt University, Edinburgh, halaman 68:

Biarkan . Menunjukkan bahwa bahasa ( 0 + 1 ) * 1 ( 0 + 1 ) n - 1 dapat dikenali oleh robot non-deterministik dengan n + 1 negara. Tunjukkan bahwa setiap otomat deterministik yang mengenali bahasa ini harus memiliki setidaknya 2 n status. Contoh ini menunjukkan bahwa peningkatan eksponensial dalam jumlah keadaan lewat dari otomat non-deterministik ke otomat deterministik yang sesuai kadang-kadang tidak dapat dihindari.n1(0+1)1(0+1)n1n+12n


10

Saya akan menebak bahwa maksud Anda DFA optimal memiliki negara. Mungkin ini tidak membuat Anda 2 n menyatakan, tapi itu Ω ( 2 n ) .2n2nΩ(2n)

Dari "Kompleksitas Komunikasi" oleh Kushilevitz dan Nisan dalam latihan 12.6:

"Untuk beberapa bilangan bulat [non-negatif konstan] , pertimbangkan bahasa (terbatas) L c = { w w w { 0 , 1 } c } ."cLc={www{0,1}c}

dan buku terus di meminta Anda untuk membuktikan bahwa Anda dapat menemukan co-NFA mengakui yang menggunakan O ( c ) negara bagian dan juga bahwa Anda tidak dapat melakukan lebih baik dari Ω ( 2 c ) negara untuk DFA.LcO(c)Ω(2c)


Juga, bukti dari bagian kedua "memerlukan" kompleksitas komunikasi, jadi ini mungkin tidak cocok untuk keperluan Anda.
Timothy Sun

Terima kasih atas jawabannya! Apa yang Anda maksud dengan co-NFA?
saadtaame

Pada dasarnya, beralih "menerima" dengan "menolak" dalam definisi NFA. Yaitu, jika tidak ada jalan yang mungkin mengarah ke kondisi penolakan, Anda menerima, jika tidak Anda menolak.
Timothy Sun

Bahkan, batas bawah cukup mudah diikuti dari Myhill-Nerode. (Sebenarnya, Anda bisa mendapatkan sesuatu seperti ( c + 1 ) 2 c .) Tapi co-NFA saya menggunakan Θ ( c 2 ) status. 2c(c+1)2cΘ(c2)
Yuval Filmus

Bahasa yang terbatas agak membosankan dalam hal ini. Lihat juga di sini .
Raphael

9

Ini adalah jawaban yang terlambat, tetapi tampaknya tidak ada yang memberikan solusi optimal. Ambil , Q n = { 0 , 1 , ... , n - 1 } et A n = ( Q n , A , E n , { 0 } , { 0 } ) , dengan E n = { ( i , a , iA={a,b}Qn={0,1,,n1}An=(Qn,A,En,{0},{0})

En={(i,a,i+1)0in1}{(n1,a,0)}{(i,b,i)1in1}{(i,b,0)1in1}}
NFA ini pada alfabet dua huruf memiliki status , hanya satu status awal dan satu akhir dan DFA minimal yang setara memiliki 2 n status.n2n

3
Sangat pintar! Bahasa diterima oleh robot ini , di mana W n - 1 terdiri dari semua kata-kata yang mengandung huruf a paling n - 1 kali. (an+aWn1b)Wn1an1
Yuval Filmus

2
@ yuval-filmus Contoh ini bukan milikku. Saya ingin memberikan referensi, tetapi saat ini saya tidak ingat di mana saya melihatnya.
J.-E.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.