Apa perbedaan antara mesin Turing deterministic dan nondeterministic? Model NDTM yang berbeda namun setara. Secara khusus, apa frasa yang sering digunakan ini "menebak nondeterministis"? Cara menggunakannya dengan benar, dan contoh penggunaan yang salah. Tujuan saya adalah membuat pertanyaan referensi.
turing-machines
nondeterminism
fade2black
sumber
sumber
Jawaban:
Berikut adalah beberapa cara berpikir tentang non-determinisme (disalin dari jawaban ini ).
Jin. Kapan pun mesin memiliki pilihan, jin memberi tahu ke mana harus pergi. Jika input dalam bahasa, maka jin dapat mengarahkan mesin sedemikian rupa sehingga akhirnya diterima. Sebaliknya, jika input tidak dalam bahasa, apa pun jin memberitahu mesin untuk melakukannya, itu akan selalu ditolak.
Petunjuk. Mesin menghitung fungsi bivariat. Input pertama adalah kata , dan input kedua adalah "petunjuk" . Setiap kali mesin menghadapi pilihan non-deterministik, ia berkonsultasi dengan simbol petunjuk selanjutnya, dan beroperasi sesuai dengannya. Kami dijanjikan sebagai berikut:w x
Menerima perhitungan. Perhitungan penerimaan adalah perhitungan hukum (sesuatu di mana mesin selalu beroperasi sesuai dengan salah satu pilihan yang dihadapinya) yang berakhir pada keadaan penerima. Sebuah kata dalam bahasa iff memiliki perhitungan penerimaan.
Kami dapat memformalkan gagasan menerima perhitungan menggunakan konfigurasi . Konfigurasi adalah deskripsi seketika dari seluruh kondisi mesin. Kita dapat mendefinisikan relasi , di mana adalah konfigurasi, yang berlaku ketika dapat mengarah ke dalam satu langkah. Dalam mesin deterministik, ada paling banyak satu per setiap , sedangkan di mesin nondeterministic, mungkin ada lebih dari satu. Perhitungan penerimaan untuk kata adalah yang dimulai pada konfigurasi awal (rekaman itu berisi , titik kepala di awalσ⊢σ′ σ,σ′ σ σ′ σ′ σ w w w , negara adalah keadaan awal) dan berakhir pada konfigurasi penerima.
Deskripsi lain yang setara adalah dalam hal jangkauan. Pertimbangkan grafik berarah di mana simpul adalah konfigurasi dan ada tepi dari ke jika . Perhitungan penerimaan adalah jalur dari konfigurasi awal ke konfigurasi penerima.σ σ′ σ⊢σ′
sumber
Perbedaan antara mesin Turing deterministik dan non-deterministik terletak pada fungsi transisi. Dalam mesin Turing deterministik fungsi transisi adalah fungsi parsial:δ
yang berarti bahwa diberi negara dan simbol kaset Anda memiliki satu atau tidak ada negara, masukkan simbol ke kanan dan arah untuk bergerak. Namun dalam mesin Turing non-deterministik ini seperti (di sini adalah himpunan himpunan bagian dari himpunan):P
yang berarti bahwa Anda tidak memiliki satu atau beberapa negara, lambang lambang untuk ditulis atau arah untuk pindah. Ini memberi mesin Anda kemungkinan untuk memilih secara efektif dalam keadaan dan simbol pita seperti itu di antara "cabang" komputasi yang berbeda.
Dalam praktiknya, ini berarti bahwa kita dapat menghitung output yang berbeda untuk input yang sama. Oleh karena itu, bahasa mesin Turing non-deterministik adalah serangkaian kata yang kami temukan derivasi dalam transisi yang ditentukan. Menjalankan tertentu mungkin tidak menemukan derivasi tersebut tetapi yang penting adalah bahwa hal itu dapat terjadi. Jadi ketika Anda "menebak" Anda hanya memilih salah satu cabang perhitungan yang mungkin.
Contoh penggunaan
Dalam hal ini orang bisa saja "menebak" kata dan melaksanakan dan pada memeriksa bahwa jika kedua menerima, mereka menerima pada waktu yang sama. Dugaan dapat bekerja dengan memperkenalkan keadaan dengan transisi yang menulis pada beberapa kaset s dan / atau dan yang keluar dengan membaca simbol apa pun ke mesin umum.w M1 M2 w q 0 1
Sejujurnya saya belum menemukan contoh penggunaan yang salah dari "tebakan" ini tetapi memeriksa bahwa setiap kali frasa ini digunakan dilakukan dengan benar, mengurangi untuk memverifikasi bahwa Anda dapat membangun automata dengan struktur ini yang disimulasikan menebak.
sumber
Penerimaan string input dalam NTM
izinkan saya menambahkan lebih banyak tentang mesin Turing deterministik dan non-deterministik. Mari kita perhatikan bahwa untuk beberapa bahasa , kami merancang masing-masing mesin Turing deterministik dan non-deterministik. Pada beberapa masukan , ada akan menjadi hanya satu jalur dari konfigurasi dalam kasus mesin Turing deterministik, yaitu (di mana setiap merupakan konfigurasi pada langkah th). Sekarang berdasarkan konfigurasi , kita dapat dengan mudah menerima dan menolak string input .L x c0⟶c1⟶⋯⟶ck ci i ck x
Lihat gambar di bawah untuk pemahaman yang lebih baik:
Dalam kasus NTM, kita perlu berhati-hati, karena mungkin saja pada beberapa lintasan konfigurasi, kita masuk ke keadaan menolak. Jadi untuk mesin Turing non-deterministik, kita katakan sebuah string diterima jika setidaknya satu dari jalur konfigurasi mengarah ke status penerimaan . Kami akan menolak string input jika semua jalur konfigurasi mengarah ke status penolakan.
Sebagai contoh, pertimbangkan pohon konfigurasi yang diberikan di atas untuk mesin Turing non-deterministik pada katakanlah beberapa string inputx , Dalam hal ini kami akan menerima string input karena ada jalur yang menerima.
Referensi : http://cs.umw.edu/~finlayson/class/fall14/cpsc326/notes/24-complexity2.html
sumber
Augmentasi dengan modul menebak.
Saya menemukan model ini di " Computers and Intractability " oleh MR Garey dan DS Johnson.
Bagaimana itu bekerja.
. . .
sumber