Decidability bahasa awalan

9

Di tengah semester ada varian dari pertanyaan berikut:

Untuk decidable mendefinisikan Tunjukkan bahwa belum tentu decidable.Pref ( L ) = { x y  st  x y L }L

Pref(L)={xy s.t. xyL}
Pref(L)

Tetapi jika saya memilih maka saya pikir juga , sehingga dapat dipilih. Juga memberikan hasil yang sama. Dan karena harus decidable saya tidak bisa memilih masalah penghentian atau semacamnya .. Pref ( L ) Σ * L = LL=ΣPref(L)ΣL=L

  1. Bagaimana saya dapat menemukan sehingga tidak dapat dipilih?Pref ( L )LPref(L)
  2. Kondisi mana pada akan membuat dapat dipilih, dan mana yang akan membuatnya tidak dapat ditentukan?Pref ( L )LPref(L)
Ran G.
sumber

Jawaban:

9

Perhatikan bahwa menggunakan quantifier eksistensial di depan bahasa yang dapat didekati, kita dapat memperoleh bahasa re, yaitu setiap bahasa re dapat diekspresikan sebagai

{xΣyΣ x,yV}

di mana adalah bahasa yang dapat dipilih. Ini termasuk bahasa re yang tidak dapat diputuskan seperti .A T M = { e , x | e  mengkodekan mesin Turing yang menerima  x }V

ATM={e,x e encodes a Turing machine which accepts x}

Satu-satunya perbedaan di sini adalah bahwa di sini kita harus memisahkan dan kita sendiri. Trik standarnya adalah menggunakan simbol baru untuk memisahkan dua bagian (asumsikan pemisah itu milik ). Oleh karena itu bahasa apa pun termasuk yang tidak dapat ditentukan dapat diungkapkan dalam format ini.y yxyy

Untuk pertanyaan kedua, tidak ada cara algoritmik umum untuk memeriksa apakah awalan bahasa yang diberikan dapat diputuskan. Ini mengikuti dari teorema Rice.

Kaveh
sumber
dapatkah Anda secara eksplisit memberikan yang menciptakan ? A T MVATM
Ran G.
2
biarkan menjadi string yang dimaksudkan untuk mewakili penghentian penerimaan perhitungan pada , akan memeriksa apakah adalah perhitungan penerimaan pada . yMexVyMex
Kaveh
Itu solusi yang bagus!
Ran G.
3

Meta-knowledge: Anda ingin menemukan bahasa yang tidak dapat diputuskan yang memiliki beberapa properti komputasi. Bahasa yang tidak dapat diputus-putuskan mungkin tidak akan membawa Anda terlalu jauh. Tapi yang semi-decidable ...


Petunjuk yang lebih kuat: apa bahasa semi-decidable? Ini berarti kita dapat menyebutkan kata-kata: itu adalah seperangkat kata sedemikian rupa sehingga ada bilangan bulat sehinggaun

u=f(n)

Menatap persamaan ini sebentar, dengan decidability dan awalan dalam pikiran.


Secara intuitif, anggap Anda memiliki beberapa dan Anda ingin menguji apakah itu dalam . Anda tidak akan melakukan yang lebih baik secara umum daripada memeriksa , , , dll. Di mana adalah huruf-huruf alfabet. Ini adalah fungsi rekursif parsial yang menguji keanggotaan dalam . Tentu saja, kami tahu bahwa sudah kembali; apa yang perlu kita perlihatkan adalah bahwa terkadang tidak ada metode alternatif. Mari kita ambil beberapa himpunan yang re dan tidak rekursif, dan biarkan menjadi enumerasi (xPref(L)xaxbxaaa,b,Pref(L)Pref(L)SNfSS=f(x)xN ).

Asumsikan alfabet berisi tiga simbol , dan (jika Anda hanya memiliki dua simbol , enkode sebagai , sebagai dan sebagai ). Jika , biarkan akan ditulis dalam basis 2 menggunakan simbol dan tanpa terkemuka .01:{,}01:nNn¯n010

Biarkan . Dalam bahasa Inggris biasa, kami mengambil elemen dan menempel pada indeks enumerasi mereka. jelas decidable (centang yang ada tunggal , bahwa dua urutan digit tidak mengandung terkemuka , dan bahwa urutan pertama digit mantra gambar dengan dari nomor yang kedua satu mantra). Namun memutuskan apakah beberapa adalah awalan sama dengan memutuskan apakah ada di , yang tidak dapat Anda lakukan tanpa mengetahui karena tidak rekursif dengan asumsi. Secara formal,S L : 0 f ˉ y L y S x S P r e f ( L ) P r e f ( L ) { 0 , 1 } : = S :L={y¯:x¯y=f(x)}SL:0fy¯LySxSPref(L) tidak dapat ditentukan, karena tidak dapat ditentukan.Pref(L){0,1}:=S:

Gilles 'SANGAT berhenti menjadi jahat'
sumber