Desidablitas Bahasa Tata Bahasa dan Automata

16

Perhatikan bahwa ini adalah pertanyaan yang terkait dengan belajar di kursus CS di universitas, BUKAN pekerjaan rumah dan dapat ditemukan di sini di bawah ujian Musim Gugur 20112.

Inilah dua pertanyaan yang saya lihat dari ujian sebelumnya. Mereka tampaknya terkait, yang pertama:

Membiarkan

FINsayaTECFG={<G> |G adalah Konteks Gratis Grammar dengan |L.(G)|<}

Buktikan bahwa adalah bahasa yang dapat dipilih. FINITECFG

dan...

Membiarkan

FINITETM.={<M.> |M. adalah Mesin Turing dengan |L.(M.)|<}

Buktikan bahwa FsayaNsayaTETM. adalah bahasa yang tidak dapat ditentukan.

Saya agak bingung tentang cara mengatasi masalah ini, tetapi saya memiliki beberapa wawasan yang saya pikir mungkin berada di arah yang benar. Hal pertama yang saya sadari adalah bahasa AREX , di mana

AREX={<R,w>∣R is a regular expression with wL(R)}

adalah bahasa yang dapat didekati (buktinya ada dalam Teori Komputasi Michael Sipser , hal 168). Sumber yang sama juga membuktikan bahwa Grammar Konteks Gratis dapat dikonversi ke ekspresi reguler, dan sebaliknya. Jadi ACFG , juga harus dapat ditentukan karena dapat dikonversi ke ekspresi reguler. Ini, dan fakta bahwa ATM adalah un -decidable, tampaknya terkait dengan masalah ini.

Satu-satunya hal yang dapat saya pikirkan adalah meneruskan G ke mesin Turing untuk (setelah mengonversi G ke ekspresi reguler) dan . Kemudian menerima jika G tidak dan menolak jika G tidak. Sebagai adalah diputuskan, ini tidak akan pernah terjadi. Entah bagaimana aku merasa seperti aku membuat kesalahan di sini, tapi aku tidak yakin apa itu. Bisa seseorang tolong meminjamkan tangan di sini? A T MAREXATMATM.

BrotherJack
sumber
5
"Konteks Gratis Grammar dapat dikonversi ke ekspresi reguler, dan sebaliknya" Itu tidak benar (kecuali Anda mengartikannya sebagai "terdapat CFG yang dapat dikonversi ke ekspresi reguler", tapi saya tidak berpikir bahwa ini apa yang Anda berarti). Regular tata bahasa dapat dikonversi ke ekspresi reguler. Tidak ada algoritma untuk mengkonversi CFGs menjadi ekspresi reguler karena alasan sederhana bahwa sebagian besar konteks bahasa bebas (yaitu semua bahasa bebas konteks yang tidak juga bahasa biasa) tidak dapat dijelaskan menggunakan ekspresi reguler.
sepp2k

Jawaban:

9
  1. Ubah bentuk G ke Chomsky Normal . Dengan cara ini, satu-satunya derivasi kosong akan menjadi simbol awal yang tidak muncul di tempat lain dan dengan demikian jika ada beberapa produksi yang pada akhirnya dapat menghasilkan dirinya sendiri, maka tata bahasanya tidak terbatas. Jika tidak ada produksi seperti itu, setiap simbol hanya akan dapat menghasilkan serangkaian string yang terbatas, dan kemudian tata bahasa terbatas. Jadi, buat grafik terarah di mana setiap produksi adalah simpul dan setiap simbol di dalam produksi adalah tepi yang menargetkan simbol itu. Jika grafik memiliki beberapa siklus, CFG tidak terbatas, sebaliknya tidak. Karenanya mesin Turing untuk dapat dibuat untuk melakukan hal itu, dan kemudian dapat dipilih.FINITECFGFINITECFG

  2. Misalkan dapat dipilih. Mari mengatakan bahwa adalah mesin Turing yang memiliki beberapa string sebagai masukan dan penggunaan dirinya sebagai masukan untuk . Jika mengembalikan true (yaitu, hanya menerima bahasa yang terbatas), maka menerima input, yang mengarah ke kontradiksi karena set input tidak terbatas (panjang input tidak terikat, jadi terima string apa pun yang mungkin sebagai sarana input menerima serangkaian string tanpa batas). Jika mengembalikan false (yaitu bahasa 's adalah tak terbatas), maka menolak input, yang berarti bahwa H F I N I T E T M F I N I T E T M H H F I N I T E T M H H H H F I N I T E T M F I N I T E T MFINITETMHFINITETMFINITETMHHFINITETMHHHBahasa 's terbatas karena tidak menerima input (yaitu bahasa yang kosong), yang mengarah ke kontradiksi juga. Dengan cara ini, anggapan bahwa ada mengarah ke kontradiksi, dan dugaan ini didasarkan pada anggapan bahwa adalah decidable. Jadi, dengan kontradiksi, kita memiliki tidak decidable.HFINITETMFINITETM

Sumber yang sama juga membuktikan bahwa Context Free Grammar dapat dikonversi ke ekspresi reguler, dan sebaliknya.

Aku benar-benar ragu bahwa Sipser akan menyatakan bahwa, Anda mungkin salah membaca atau salah paham. Ini berarti bahwa tata bahasa bebas konteks menghasilkan persis langauges sama seperti tata bahasa yang benar-linear. Ini salah; tata bahasa yang benar-linear menghasilkan adalah subset yang tepat dari bahasa tata bahasa bebas konteks dp. Yang mengatakan, cara Anda mencoba untuk menggunakan bahasa reguler untuk menjawab pertanyaan-pertanyaan hanya membawa Anda ke mana-mana.

Seperti yang Anda lihat di atas dalam bukti saya, dua pertanyaan memang dua sangat berbeda, pertanyaan yang tidak terkait. Kebetulan mereka diucapkan dengan kata yang sama.

Victor Stafusa
sumber
1
Saya mengalami beberapa masalah berikut bukti dua. OK jadi Anda lulus H ke G, ya? Jika G mengembalikan benar daripada H terbatas, itu masuk akal. Namun, saya tidak mendapatkan masukan set makhluk yang tak terbatas, apa yang input Anda referrng ke?
BrotherJack
1
HH
1
BAIK. Yang tampaknya masuk akal. Apakah akurat untuk menyebut input itu sebagai "string apa pun yang mungkin ada dalam bahasa input H"?
BrotherJack
1
@ BrotherJack - Saya mengedit jawaban untuk memperjelas hal itu.
Victor Stafusa
1
Penjelasan yang sangat baik! Terima kasih banyak untuk waktu Anda.
BrotherJack
2

FINITECFG

LNxLN

LLN

N2NLL

Ran G.
sumber