Bagaimana cara kerja mesin Turing nondeterministic?

12

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.

fade2black
sumber
1
Apa yang Anda cari di luar apa yang Wikipedia katakan tentang masalah ini?
David Richerby
1
Kontribusi saya dalam hal ini: satu , dua .
Raphael
Saya tidak yakin saya setuju dengan bentuk upaya ini pada pertanyaan referensi (agak luas). Juga, tidak jelas bagi saya apa yang melampaui definisi yang diharapkan di sini. (Jika lebih banyak orang akan membaca definisi tersebut, akan ada lebih sedikit kebingungan di sekitar.)
Raphael

Jawaban:

8

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:wx

  • Kelengkapan: jika maka ada beberapa petunjuk yang menyebabkan mesin menerima.wLx
  • Kesehatan: jika tidak maka mesin menolak semua petunjuk.wL

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σσσ,σσσσσwww, 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.σσσσ

Yuval Filmus
sumber
7

Perbedaan antara mesin Turing deterministik dan non-deterministik terletak pada fungsi transisi. Dalam mesin Turing deterministik fungsi transisi adalah fungsi parsial:δ

δ:Q×BQ×B×{left,right}

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

δ:Q×BP(Q×B×{left,right})

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

L={(M1,M2):there exists at least one word accepted by both TM at the same time}

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.wM1M2wq01

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.

Rodrigo
sumber
"Dalam prakteknya, ini berarti bahwa kita dapat menghitung output yang berbeda untuk input yang sama." - ini tampaknya menunjukkan bahwa kita benar-benar dapat membangun mesin non-deterministik. Itu salah.
Raphael
@ Raphael maksudmu tidak mungkin membuat mesin non-deterministik? mengapa demikian?
Rodrigo
Karena non-determinisme adalah konsep matematika yang tidak memiliki padanan fisik (sejauh yang saya tahu).
Raphael
6

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 .Lxc0c1ckciickx

Lihat gambar di bawah untuk pemahaman yang lebih baik: masukkan deskripsi gambar di sini

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 input x, 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

Pisau
sumber
5

Augmentasi dengan modul menebak.

Saya menemukan model ini di " Computers and Intractability " oleh MR Garey dan DS Johnson.

NDTM memiliki struktur yang persis sama dengan DTM, kecuali bahwa ia ditambah dengan modul menebak yang memiliki kepala tulis saja. Modul menebak menyediakan sarana untuk menuliskan "tebakan" dan digunakan hanya untuk tujuan ini.

masukkan deskripsi gambar di sini

Bagaimana itu bekerja.

Tahap pertama adalah tahap menebak. Awalnya, string inputx ditulis dalam kotak kaset 1 melalui |x| (sementara semua kotak lainnya kosong), kepala baca-tulis sedang memindai persegi 1, kepala tulis saja memindai persegi 1, dan kontrol negara hingga adalah "tidak aktif". Modul menebak kemudian mengarahkan kepala tulis saja, selangkah demi selangkah, baik untuk menulis beberapa simbol dari alfabet kaset Γ dalam pita pindaian dipindai dan pindahkan satu kotak ke kiri, atau berhenti, pada titik mana modul menebak menjadi tidak aktif dan kontrol keadaan terbatas diaktifkan dalam keadaan q0. Pilihan apakah akan tetap aktif, dan, jika demikian, dari mana simbolΓuntuk menulis, dibuat oleh modul menebak dengan cara yang sepenuhnya sewenang-wenang. Dengan demikian modul menebak dapat menulis string apa pun dariΓ sebelum berhenti dan, tentu saja, tidak perlu berhenti.

Tahap "pengecekan" dimulai ketika kontrol kondisi terbatas diaktifkan dalam status q0. Mulai saat ini, perhitungan dilanjutkan hanya di bawah arahan program NDTM sesuai dengan aturan yang sama persis dengan DTM. Modul menebak dan kepala penulisan saja tidak lagi terlibat, setelah memenuhi peran mereka dengan menulis string tebakan pada kaset. Tentu saja, string yang ditebak dapat (dan biasanya akan) diperiksa selama tahap pemeriksaan. Perhitungan berhenti ketika dan jika kontrol status negara terbatas memasuki salah satu dari dua status penghentian (keduanyaqY atau qN) dan dikatakan menerima perhitungan jika terhenti di negara bagianqY. Semua perhitungan lain, terputus-putus atau tidak, dikelompokkan bersama hanya sebagai perhitungan yang tidak menerima .
Perhatikan bahwa ada program NDTMM akan memiliki jumlah tak terbatas dari kemungkinan perhitungan untuk string input yang diberikan x, satu untuk setiap kemungkinan string yang diduga Γ. Kami mengatakan bahwa program NDTMM menerima x jika setidaknya salah satu dari ini adalah perhitungan penerimaan.

The waktu yang diperlukan oleh program NDTMM untuk menerima string xLM didefinisikan sebagai minimum, di atas semua perhitungan yang diterima dari M untuk x , dari jumlah langkah yang terjadi pada tahap menebak dan memeriksa hingga kondisi berhenti qY dimasukkan.

Satu-satunya hal yang layak mendapat perhatian khusus adalah bahwa, di mana kita biasanya membayangkan algoritma nondeterministic sebagai menebak struktur S bahwa dalam beberapa hal tergantung pada contoh [masalah] yang diberikan I, modul menebak NDTM sepenuhnya mengabaikan input yang diberikan. Namun, karena setiap string dariΓadalah dugaan yang mungkin, kami selalu dapat merancang program NDTM kami sehingga tahap pemeriksaan dimulai dengan memeriksa apakah string yang ditebak tidak sesuai (di bawah interpretasi implisit program kami menempatkan pada string) ke perkiraan yang tepat untuk input yang diberikan. Jika tidak, program dapat segera memasuki kondisi berhentiqN.

. . .

Kelas NP didefinisikan secara informal sebagai kelas dari semua masalah keputusan Π bahwa, di bawah skema penyandian yang masuk akal, dapat diselesaikan dengan algoritma nondeterministic waktu polinomial.

Penggunaan istilah "memecahkan" dalam definisi informal ini, tentu saja, harus diambil dengan sebutir garam. Harus jelas bahwa "algoritma nondeterministic waktu polinomial waktu" pada dasarnya adalah perangkat definisi untuk menangkap gagasan pembuktian waktu polinomial, daripada metode realistis untuk menyelesaikan masalah keputusan. Alih-alih memiliki hanya satu kemungkinan perhitungan pada input yang diberikan, ia memiliki banyak yang berbeda, satu untuk setiap kemungkinan dugaan.

Ini adalah gagasan "polinomial" waktu kelas bahwa kelas NPdimaksudkan untuk mengisolasi. Perhatikan bahwa verifikasi waktu polinomial tidak menyiratkan solvabilitas polinomial.

fade2black
sumber