Mengapa non-determinisme (Push-down automata) diperlukan?

9

Saya ingin tahu mengapa untuk pengenalan bahasa bebas konteks, hanya automata push-down (DPA = NPDA) non-deterministik yang berfungsi. Mengapa deterministic push-down automata (DPDA) tidak mengenali bahasa seperti itu?

Reactormonk
sumber
10
Suatu bahasa dapat dikenali oleh automata pushdown deterministik jika jika ada beberapa tata bahasa LR (1) untuk bahasa itu. Karena ada bahasa bebas konteks yang tidak memiliki tata bahasa LR (1) yang menjelaskannya, NPDA! = DPDA. Karena hasil ini sangat terkenal dan biasanya akan dirawat dalam kursus tentang kompiler, saya tidak yakin apakah itu menjawab pertanyaan Anda: apakah Anda mungkin mencari intuisi di balik fakta ini?
Alex ten Brink
ini memang agak berlawanan dengan intuisi mengingat ada model kunci lain di mana nondeterminisme tidak membuat perbedaan pada bahasa yang diterima - FSMs dan TMs.
vzn

Jawaban:

25

Saya tidak yakin rasa "mengapa" yang Anda cari. Salah satu alasan peningkatan daya ketika memungkinkan nondeterminisme dapat dilihat pada contoh berikut:

Lww¯w¯w

AkNuk=ab2kav0vk+1=vkukvkAqkvkk,lklqk=qlkAvkukvkvlukvk

Klaus Draeger
sumber
0

FA secara deterministik atau non-deterministik menerima bahasa yang sama (mis. Reguler Lang).

Tetapi dalam kasus PDA , jika kita membatasi untuk berperilaku deterministik, ia tidak akan menerima beberapa CFL (CFL tanpa properti awalan (kecuali RL)).

Kenapa begitu?

Pertimbangkan contoh CFL yang tidak memiliki properti awalan (Properti awalan dari lang: tidak ada string adalah awalan yang tepat dari string lain di lang).

L = wwr

misalnya. string 00 dan 0000 . (00 adalah awalan yang tepat dari 0000 sehingga wwr tidak memiliki properti pref).

Pada kejadian 00 DPDA akan masuk ke negara final. Sekarang karena DPDA tidak memiliki pilihan antara penerimaan dan kontinuitas , DPDA tidak dapat menerima 0000 setelah menerima 00 . Ini adalah tempat di mana PDA membutuhkan non-determinisme .

Pengamatan : Dalam kasus FA, lang (RL) tanpa pref. properti dapat diterima secara deterministik (mis. string dimulai dengan 0). Ini menunjukkan bahwa efek properti awalan RL dan CFL berbeda . Perbedaan antara determinisme dan non-determinisme untuk PDA menimbulkan keluarga bahasa baru. yang diterima oleh DPDA. Bahasa ini disebut DCFL .

Sushant Shinde
sumber