Perbedaan antara mesin Turing deterministik dan non-deterministik terletak pada fungsi transisi. Dalam mesin Turing deterministik fungsi transisi adalah fungsi parsial:δ
δ:Q×B→Q×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×B→P(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.