Saya telah mencoba cukup lama untuk menemukan konstruksi sehingga saya dapat secara resmi menunjukkan bahwa PDA deterministik ditutup dengan komplementasi. Namun, kebetulan setiap ide yang saya dapatkan memiliki sesuatu yang pada akhirnya tidak cocok. Bisakah Anda membantu saya?
Masalah utama terjadi dengan ε-move . PDA dapat selesai membaca inputnya dalam keadaan non-final (menolak) tetapi masih dapat pindah ke status final (menerima) melalui ε-move dan akhirnya menerima string. Ini berarti bahwa menambahkan status mati dan melengkapi status tidak berfungsi. Saya sudah memecahkan masalah kemungkinan urutan tak terbatas dari ε-move , jadi itu bukan bagian utama dari pertanyaan saya.
EDIT: Sejauh yang saya mengerti, jika DPDA mencapai akhir input dan berada dalam keadaan menerima dan pindah ke keadaan menolak melalui ε-pindah itu masih akan menerimanya (karena mencapai keadaan akhir tanpa simbol input tersisa untuk Baca).
Tolong beri tahu saya jika saya bisa lebih jelas.
Jawaban:
Saya tidak punya waktu untuk menulis ini sebelumnya tetapi saya menemukan jawaban. Inilah yang saya lakukan:
MembiarkanO menjadi yang asli PDA . Kami akan membangun yang baruPDA , panggil saja M (M singkatan dimodifikasi).
Untuk menemukan pelengkap dariO , kita dapat membalik status akhir menjadi status non-final dan sebaliknya. Ini adalah prosedur yang sama seperti untuk automatas terbatas. Namun, ada kehalusan. Masalah utama adalah bahwa dalam PDA asliO input w dapat menyebabkan suatu negara S yang bukan merupakan kondisi akhir tetapi bisa melakukan ϵ−move dan sampai ke negara penerima S′ . Membalik keadaan seperti yang disebutkan di atas, akan membuatM diakhiri S dengan input w yang akan menjadi kondisi akhir (menyebabkan M menerima menerima input) meskipun nantinya akan menghasilkan ϵ−move untuk S′ , negara yang tidak menerima. Karena itu keduanyaO dan M akan menerima w . Hal serupa terjadi jikaS adalah kondisi terakhir dan S′ negara non-final yang dapat dijangkau dari S melalui sebuah ϵ−move .
Untuk mengatasi masalah ini, kita harus memastikan itu semuaϵ -pindah terjadi sebelum kita membaca simbol berikutnya. Artinya, kita akan memasuki kondisi membaca hanya ketika jalurϵ -pindah diikuti dan kami mencapai negara yang tidak memiliki ϵ -Pindah tersedia. Kami menyebut negara bagian terakhir ini sebagai negara bagian pembacaan , karena mereka memerlukan simbol aktual untuk melakukan transisi baru.
MenetapkanM Menyatakan menjadi tupel dari formulir <q,n> dimana q∈Q (Q adalah himpunan negara asli PDA ) dan n∈{1,2,3,4} .
Jikaδ(q,ϵ,X)=<q′,α> di O biarkan δ(<q,3>,ϵ,X)=<<q′,2>,α> di M jika q∈FO .
Jikaδ(q,ϵ,X)=<q′,α> di O biarkan δ(<q,3>,ϵ,X)=<<q′,3>,α> di M jika q∉FO .
Jikaδ(q,ϵ,X)=<q′,α> di O biarkan δ(<q,2>,ϵ,X)=<<q′,2>,α> di M .
Jikaδ(q,ϵ,X) adalah undefined di O , δ(<q,2>,ϵ,X)=<<q,1>,X> di M
Jikaδ(q,ϵ,X) adalah undefined di O , δ(<q,3>,ϵ,X)=<<q,4>,X> di M
Dalam definisi-definisi itu, kita membiarkan keadaan bentuk<q,2> dan <q,3> mengkonsumsi ϵ -pindah meniru ϵ -pindah dari O sampai tidak ada lagi. Kemudian, lakukanϵ -Pindah ke kondisi membaca. Sekarang untuk kondisi membaca,
Dengan membuat definisi ini, kita mengkonsumsi simbol input dan pindah ke keadaan form<q,3> untuk memulai seri baru ϵ -pindah.
Akhirnya, buat status formulir<q,4> menjadi negara penerima M jika q∉FO . Juga, buat<q0,3> keadaan awal dari M jika q0 adalah kondisi awal dari O .
Apa yang kami lakukan adalah sebagai berikut:
Buat 4 "lantai" negara (elemen kedua tuple di negara bagianM menentukan di lantai berapa kita berada). Lantai 3 meniruϵ -pindah dari O mungkin mencapai negara penerima q dari O . Jika itu masalahnya, kami pindah ke lantai 2; kalau tidak, kita tetap di lantai 3. Ketika tidak ada lagiϵ -Pindah yang harus diikuti O , kami mendefinisikan ϵ -pindah dari M untuk mencapai kondisi membaca. Lantai 1 dan 4 sesuai dengan status membaca. Jika kita berada di lantai 3, kita pergi ke lantai 4. Jika kita berada di lantai 2, kita mencapai lantai 1. Hanya negara<q,4> (Status yang ada di lantai 4) menerima status dari M , dengan ketentuan q bukan kondisi penerimaan O .
Tolong beri tahu saya jika saya membuat kesalahan ketik saat menulis ini. Saya bisa dengan mudah keliru. Juga, bahasa Inggris saya tidak begitu baik sehingga merasa bebas untuk mengedit dan menyusun ulang hal-hal yang lebih baik.
sumber
Ada bukti oleh konstruksi dalam Pengantar Sipser untuk Teori Komputasi (3rd edisi memiliki bagian tentang DCFL) yang mengidentifikasi status membaca automaton dengan membagi setiap negara yang membaca dan muncul sekaligus. Hanya status membaca ini yang bisa menjadi status akhir, dan untuk mendapatkan DPDA pelengkap Anda hanya membalikkan perilaku penerimaan dalam set status membaca.
sumber
Anda dapat mengasumsikan otomat bebas dariε -transisi tanpa kehilangan generalitas.
Ini dapat ditunjukkan dengan menggunakan konstruksi standar dari CFG ke PDA yang diterapkan pada bentuk normal Greibach . Dalam Silent Transitions in Automata with Storage , G. Zetzsche baru-baru ini mempresentasikan konstruksi langsung pada automata.
Peringatan potensial: Saya agak berasumsi bahwa konstruksi standar menghasilkan DPDA jika kita menerapkannya pada tata bahasa yang sesuai, yaitu "deterministik", dan bahwa kesesuaian ini bertahan dari transformasi dalam bentuk normal Greibach.
sumber