Bagaimana cara membuktikan bahwa DFA dari NFA dapat memiliki jumlah negara eksponensial?

20

Semua automata terbatas non-deterministik dapat diubah menjadi automata terbatas deterministik yang setara. Namun, automata terbatas deterministik hanya memungkinkan satu panah per simbol yang menunjuk dari suatu negara. Oleh karena itu, negara-negara bagian tersebut harus menjadi anggota set kekuasaan negara-negara NFA. Ini tampaknya menunjukkan bahwa jumlah negara bagian DFA dapat diukur secara eksponensial dalam hal jumlah negara bagian NFA. Namun, saya bertanya-tanya bagaimana cara membuktikannya.

John Hoffman
sumber
7
Ini pertanyaan yang masuk akal, dan konstruksinya tidak sepenuhnya jelas, tetapi itu mungkin masih menjadi pertanyaan pekerjaan rumah. Jadi, akan sangat membantu untuk mendengar mengapa Anda ingin tahu.
Ada beberapa konstruksi di sini tetapi sepertinya itu harus di kertas di suatu tempat. tidak tahu seorang ref. juga di atas kepala saya berpikir ada konstruksi sehingga NFA dihitung dalam biner dalam keadaan aktif, dan menerima hanya setelah sekitar transisi ...? 2n
vzn
Lihat juga cs.stackexchange.com/questions/3381/...
Gilles 'SO- stop being evil'

Jawaban:

15

Satu operasi yang mengubah NFA menjadi NFA lain tetapi tidak melakukannya untuk DFA adalah pembalikan (arahkan semua panah ke arah sebaliknya, dan tukar negara awal dengan negara penerima). Bahasa yang dikenali oleh robot hasil transformasi adalah bahasa terbalik .LR={un1u0u0un1L}

Jadi satu ide adalah mencari bahasa yang memiliki konstruksi asimetris. Ke depan, bahasa ini harus dikenali dengan memeriksa simbol pertama , hanya membutuhkan status . Untuk mundur, Anda harus menyimpan ingatan dari terakhirn + O ( 1 )nn+O(1) state, yang membutuhkan A n + O ( 1 ) menyatakan di mana A adalah ukuran alfabet.nAn+O(1)A

Kami sedang mencari bahasa bentuk mana M n terdiri dari kata-kata dengan panjang n , S adalah himpunan bagian non-abjad dari alfabet, dan M tidak memberikan batasan lebih lanjut. Kami mungkin juga memilih alfabet paling sederhana A = { a , b } (alfabet singleton tidak akan berhasil, Anda tidak mendapatkan NFA yang lebih kecil di sana) dan M = A . S nontrivial S berarti S = { a } . UntukMnSMMnnSMA={a,b}M=ASS={a} , kami mensyaratkan bahwa itu tidak berkorelasi dengan S (sehingga DFA untuk bahasa yang dibalik perlu menyimpan memori S ): ambil M n = A n .MnSSMn=An

Jadi, biarkan . Ia dikenali oleh DFA sederhana dengan status n + 2 .Ln=(a|b)na(a|b)n+2

dfa

Membalikkannya menghasilkan NFA yang mengenali .LnR=(a|b)a(a|b)n

nfa

The minimal DFA yang mengakui memiliki setidaknya 2 n + 1 negara. Hal ini karena semua kata-kata panjang 2 n + 1 harus mencapai negara yang berbeda di DFA. (Dengan kata lain, mereka termasuk kelas kesetaraan Myhill-Nerode yang berbeda .) Untuk membuktikan ini, ambil dua kata yang berbeda u , v A n + 1 dan biarkan k menjadi posisi di mana mereka berbeda ( u kv k ). Tanpa kehilangan umum, mari kita asumsikan u kLnR2n+12n+1u,vAn+1kukvk dan v k = b . Maka u b kL R n dan v b kL R n ( b k adalah ekstensi yang membedakan u dan v ). Jika u dan v mengarah ke status yang sama dalam DFA yang mengenali L R n maka demikian juga u b k dan v b kuk=avk=bubkLnRvbkLnRbkuvuvLnRubkvbk, yang tidak mungkin karena yang satu mengarah ke negara penerima dan yang lainnya tidak.

Pengakuan: contoh ini dikutip di Wikipedia tanpa penjelasan. Artikel ini memberikan referensi ke artikel yang belum saya baca yang memberikan ikatan yang lebih ketat:
Leiss, Ernst (1981), "Representasi ringkas dari bahasa reguler oleh Boolean automata", Theoretical Computer Science 13 (3): 323–330, doi: 10.1016 / S0304-3975 (81) 80005-9 .

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Jawaban Logis: Status dalam DFA digunakan sebagai memori (untuk menyimpan beberapa informasi seperti sakelar kipas on-off), sehingga apa yang dapat direpresentasikan dalam status tunggal dalam DFA dapat direpresentasikan menggunakan kombinasi status dalam NFA yang setara. Itulah alasan NFA memiliki status yang lebih sedikit dibandingkan dengan DFA yang setara. Sekarang jika Anda memiliki status dalam himpunan Q maka himpunan semua kemungkinan kombinasi Q adalah himpunan daya yaitu 2 n , Jadi jika kita membalikkan NFA dari n status menjadi DFA yang setara, maka DFA akan terdiri dari paling banyak 2 n menyatakan. - Apakah masuk akal? nQQ2nn2n
Grijesh Chauhan
1
@GrijeshChauhan Ini bukan pertanyaan yang diajukan. Ya, mudah untuk melihat bahwa untuk setiap NFA dengan negara ada DFA dengan paling banyak 2 n negara. Tetapi di sini kita ingin melihat bahwa ikatan tercapai, yaitu bahwa untuk n apa pun ada N-negara NFA sedemikian rupa sehingga DFA ekivalen terkecil memiliki setidaknya 2 n keadaan (atau menutupnya, di sini saya membuktikan terikat 2 n - 1 ). n2nnn 2n2n1
Gilles 'SO- berhenti menjadi jahat'
hmm ... setelah membaca jawaban Anda dua kali dan dari komentar "Tapi di sini kita ingin melihat bahwa batasannya tercapai" sekarang saya bisa mengerti. Terima kasih.
Grijesh Chauhan
8

Pertimbangkan rumpun bahasa berikut: Ln={x1,x2,,xk#xk+1:i{1,,k} with xi=xk+1}

Ln{#,1,,n}

O(n)Lnnii3

Ln2O(n){1,,n}

Saya cukup yakin buku Sipser memiliki contoh ini.

Orang
sumber
Konstruksi dalam buku Siper menghasilkan DFA dengan tepat 2 negara. Jika NFA memiliki set negara Q, maka set negara DFA adalah Pow (Q) untuk mensimulasikan semua negara 'paralel' yang mungkin di mana NFA bermigrasi. (Sunting untuk menambahkan pendapat tentang ruang lingkup pertanyaan) Mengingat bahwa konstruksi yang digunakan untuk ini dalam teks standar jelas menunjukkan kemungkinan status bilangan eksponensial, bagi saya tampaknya ini bukan tingkat penelitian. Mungkin akan cocok sebagai permintaan referensi.
Logan Mayfield
8

nn2n

Contoh ini juga menunjukkan bahwa NFA mungkin menimbulkan ledakan eksponensial di bawah komplementasi. Memang, diketahui bahwa NFA (atau bahkan tata bahasa bebas konteks) untuk bahasa semua kata yang mengandung semua simbol alfabet harus memiliki jumlah negara yang eksponensial.

Yuval Filmus
sumber
1
σΣ(Σσ)
ΣnO(n2)2n2n
Inti dari contoh ini adalah bahwa blowup cocok persis dengan konstruksi set daya. Memang ada contoh biner dengan blowup yang sama, tetapi lebih rumit.
Yuval Filmus
Ya, itu contoh yang bagus.
6005
1
O(nlogn)