Apa jenis otomat adalah Turing Doodle Google?


10

Untuk merayakan ulang tahun Alan Turing, Google menerbitkan doodle yang menunjukkan mesin. Mesin seperti apa doodle itu? Bisakah itu mengekspresikan bahasa Lengkap Turing?

Ada perbedaan yang jelas dengan mesin turing klasik: pita terbatas, kendala dalam bagaimana negara dapat dihubungkan, ...

Orat-oret masih tersedia di sini Cuplikan layar orat-oret

(Tampilan di kanan atas menunjukkan output yang diharapkan.)

Kaset di tengah dibagi menjadi kotak yang dapat menampung kosong, nol atau satu. Kepala diposisikan di atas salah satu kotak dan digunakan untuk membaca dan menulis.

Di bawah rekaman itu Anda dapat melihat panah hijau yang dapat Anda klik untuk memulai mesin. Ada dua garis lingkaran di sebelahnya, beberapa di antaranya terhubung. Saya akan memanggil mereka "negara".

Setelah mesin dimulai, status pertama di sebelah kanan tombol hijau menyala, lalu yang berikutnya ke kanan, dan seterusnya ... Setiap status berisi salah satu dari perintah berikut:

  • blank = tidak melakukan apa-apa (pindah saja ke status berikutnya)
  • 1 = tulis satu ke kaset pada posisi kepala saat ini
  • 0 = tulis nol pada pita pada posisi kepala saat ini
  • panah ke kiri = gerakkan kepala satu langkah ke kiri
  • panah ke kanan = gerakkan kepala satu langkah ke kanan
  • kondisi: jika nilai di bawah kepala sama dengan nilai yang ditunjukkan dalam kuadrat turun ke baris kedua negara. jika tidak, pindah ke status berikutnya ke kanan
  • lompat kiri: kembali ke keadaan sebelumnya (tetap) tetapi hanya di baris atas [saya awalnya lupa itu, terima kasih @Marzio!]

Tidak ada cara untuk "tumpang tindih" dua lompatan (satu di atas yang lain). Mesin berhenti ketika ada yang meninggalkan status dan tidak ada status berikutnya di sebelah kanannya.

(Setelah mesin berhenti, isi kaset itu dibandingkan dengan isi layar, tetapi saya tidak menganggapnya sebagai bagian dari fungsi mesin yang dimaksud.)


9
Mesin Turing, tentu saja! en.wikipedia.org/wiki/Turing_machine Mungkin Anda bingung karena sistem transisinya funky.
Huck Bennett

Ada juga "operator lompat kiri" di mesin kontrol yang memungkinkan untuk kembali ke posisi sebelumnya tetapi hanya di baris atas; lebih jauh lagi tidak ada cara untuk "tumpang tindih" dua melompat (satu lebih dari yang lain). Tanpa operator lompat, mesin ini setara dengan DFA (aksi di mesin kontrol "dieksekusi" dari kiri ke kanan), tetapi juga dengan operator lompat kiri terbatas , mesin tampaknya tidak cukup kuat untuk mensimulasikan LBA (tapi saya tidak melakukannya) tidak terlalu memikirkannya). Dalam setiap kasus itu tidak bisa Turing lengkap karena rekaman itu terbatas.
Marzio De Biasi

1
@ Marszio De Biasi: Anda benar bahwa teka-teki ini berisi instruksi lompatan, dan tanpa mereka, modelnya jelas sangat lemah karena mesin hanya dapat berjalan untuk waktu yang konstan. (Saya tidak yakin apa yang Anda maksud dengan “setara dengan DFA.”) Pembatasan apa yang Anda lakukan pada instruksi lompat mungkin mengubah jawaban. "Kaset itu terbatas" mungkin asumsi yang salah.
Tsuyoshi Ito

Google terus corat-coret mereka tersedia (meskipun tampaknya tidak selalu versi interaktif).
Raphael

@ TsuyoshiIto: Maksud saya (tapi mungkin saya salah) yang diberikan mesin tanpa loop Anda dapat membangun DFA yang mensimulasikannya. Jika Anda mengizinkan lompatan sewenang-wenang di kedua arah dan itu bisa tumpang tindih, maka mesin segera "turing lengkap" (dengan asumsi pita tak terbatas) bahkan dengan hanya dua baris (status dapat "diratakan" secara horizontal). Saya tidak tahu apa yang terjadi jika Anda membiarkan lompatan kiri yang dapat tumpang tindih (tetapi hanya pada baris pertama) dan jumlah baris arbiter (tetapi kontrol pada baris bawah hanya bisa naik atau turun). Mungkin ini pertanyaan yang bagus untuk cs.stackexchange.com
Marzio De Biasi

Jawaban:


10

Berasumsi bahwa:

  • kita dapat menambahkan sejumlah besar baris yang sewenang-wenang ("baris status")
  • baris bisa panjang secara sewenang-wenang
  • rekaman itu tidak terbatas

Saya mencoba membangun konfigurasi mesin Doodle Alan Turing yang mengemulasi mesin dijelaskan dalam " Mesin Turing Kecil dan kompetisi berang-berang yang digeneralisasi secara umum " yang memiliki masalah penghentian yang tergantung pada masalah Collatz yang terbuka (setahu saya). Gambar lengkap tersedia di sini .M.4

atdoodle

... jadi bahkan jika Doodle AT mungkin bukan Turing lengkap (karena operator lompat-satunya yang tidak tumpang tindih yang hanya tersedia di baris pertama), itu cukup kuat untuk berjalan di garis halus (tidak) kepastian: - D

Suntingan: MENGAMBIL DOODLE ADALAH SELAMAT SELESAI

(Saya meninggalkan jawaban sebelumnya di atas, karena saya tidak yakin bagian ini benar :-)

Saya pikir bahkan dengan satu lompatan kiri yang tidak tumpang tindih, Turing Doodle sudah selesai! . Gagasan (sederhana) adalah menggunakan rekaman itu sendiri untuk menyimpan keadaan saat ini dan menggunakan banyak sel untuk mewakili alfabet yang lebih besar.

Sebagai contoh 2 status 8 simbol TM dapat disimulasikan menggunakan representasi rekaman berikut:

    HEAD POSITION
    v
...[s][b2 b1 b0] [_][b2 b1 b0] [_][b2 b1 b0] ....
   ^^^^^^^^^^^^^
    "macro cell"

Doodle Turing dapat:

  1. membaca dan cabang untuk salah satu dari dua daerah horisontal yang berbeda mewakili NEGARA A dan NEGARA B;s
  2. baca dan cabang ke baris yang mewakili salah satu dari delapan simbol;b2,b1,b0
  3. tulis simbol berikutnya, pindahkan kepala ke "sel makro" di sebelah kiri atau kanan, dan simpan di atasnya pada keadaan berikutnya; pada gambar di bawah ini operasi ini (yang dapat dilakukan pada urutan sel menggunakan tindakan bergerak ke kiri / kanan dan tulis) disebut "MW";
  4. akhirnya mentransfer kontrol ke baris atas yang dengan satu lompatan ke kiri akan membawa kontrol kembali ke langkah 1.

Gambar lengkap tersedia di sini .

TdoodleTC

Dengan cara yang sama, diberikan dengan jumlah negara dan simbol alfabet yang sewenang-wenang kita dapat membangun mesin Turing yang setara .TM.DM.


tidaaaak! Anda mengalahkan saya untuk itu! Saya hanya menulis bagaimana membuat TM sewenang-wenang di ruang-negara alih-alih rekaman. Namun, pendekatan Anda lebih baik karena hanya menggunakan satu lompatan. Sudah selesai dilakukan dengan baik! Tunggu, bagaimana mesin Anda menerima input?
Artem Kaznatcheev

@ marzio-de-biasi Kerja bagus!
pepper_chico

1
@ArtemKaznatcheev: menerima input pada rekaman; jelas Anda harus menyandikannya sesuai dengan simbol alfabet asli dari TM yang Anda tiru dan sisakan ruang kosong untuk representasi negara.
Marzio De Biasi

Tanda junior alen turing. Saya senang membaca ini
iDroid

tidak sepenuhnya yakin tentang kelengkapan TM. jangan berpikir Anda menangani kasus di mana TM menulis ke kotak kosong baru yang sebelumnya tidak ditetapkan pada pita input yang diperlukan untuk kelengkapan TM jika tidak hanya perhitungan yang terbatas.
vzn

5

Mesin ini dilengkapi dengan "pita", (analog kertas) yang melewatinya, dan dibagi menjadi beberapa bagian (disebut "kotak") masing-masing mampu membawa "simbol". Setiap saat hanya ada satu kotak, katakan r-th, dengan simbol S (r) yang ada “di dalam mesin”. Kita dapat menyebut kuadrat ini sebagai "petak yang dipindai". Simbol pada kotak yang dipindai dapat disebut "simbol yang dipindai". “Simbol yang dipindai” adalah satu-satunya yang ada di mesin tersebut, sehingga dapat dikatakan, “langsung sadar”. Namun, dengan mengubah konfigurasi-m, mesin dapat secara efektif mengingat beberapa simbol yang telah "dilihat" (dipindai) sebelumnya. Perilaku mesin yang mungkin setiap saat ditentukan oleh konfigurasi-m qn dan simbol yang dipindai S (r). Pasangan ini qn, S (r) akan disebut "konfigurasi": dengan demikian konfigurasi menentukan perilaku yang mungkin dari mesin. Dalam beberapa konfigurasi di mana kotak yang dipindai kosong (yaitu tidak mengandung simbol), mesin menuliskan simbol baru pada kotak yang dipindai: dalam konfigurasi lain, menghapus simbol yang dipindai. Mesin juga dapat mengubah kuadrat yang sedang dipindai, tetapi hanya dengan menggesernya satu tempat ke kanan atau kiri. Selain operasi-operasi ini, konfigurasi-m dapat diubah. Beberapa simbol yang ditulis {232} akan membentuk urutan angka yang merupakan desimal dari bilangan real yang sedang dihitung. Yang lain hanya catatan kasar untuk "membantu memori". Hanya catatan kasar inilah yang akan dihapus. bears no symbol) mesin menuliskan simbol baru pada kotak yang dipindai: pada konfigurasi lain ia menghapus simbol yang dipindai. Mesin juga dapat mengubah kuadrat yang sedang dipindai, tetapi hanya dengan menggesernya satu tempat ke kanan atau kiri. Selain operasi-operasi ini, konfigurasi-m dapat diubah. Beberapa simbol yang ditulis {232} akan membentuk urutan angka yang merupakan desimal dari bilangan real yang sedang dihitung. Yang lain hanya catatan kasar untuk "membantu memori". Hanya catatan kasar inilah yang akan dihapus. bears no symbol) mesin menuliskan simbol baru pada kotak yang dipindai: pada konfigurasi lain ia menghapus simbol yang dipindai. Mesin juga dapat mengubah kuadrat yang sedang dipindai, tetapi hanya dengan menggesernya satu tempat ke kanan atau kiri. Selain operasi-operasi ini, konfigurasi-m dapat diubah. Beberapa simbol yang ditulis {232} akan membentuk urutan angka yang merupakan desimal dari bilangan real yang sedang dihitung. Yang lain hanya catatan kasar untuk "membantu memori". Hanya catatan kasar inilah yang akan dihapus. Beberapa simbol yang ditulis {232} akan membentuk urutan angka yang merupakan desimal dari bilangan real yang sedang dihitung. Yang lain hanya catatan kasar untuk "membantu memori". Hanya catatan kasar inilah yang akan dihapus. Beberapa simbol yang ditulis {232} akan membentuk urutan angka yang merupakan desimal dari bilangan real yang sedang dihitung. Yang lain hanya catatan kasar untuk "membantu memori". Hanya catatan kasar inilah yang akan dihapus.

Saya berpendapat bahwa operasi ini mencakup semua yang digunakan dalam perhitungan angka. Pertahanan pertengkaran ini akan lebih mudah ketika teori mesin sudah akrab bagi pembaca. Oleh karena itu, pada bagian selanjutnya saya melanjutkan dengan pengembangan teori dan mengasumsikan bahwa dipahami apa yang dimaksud dengan "mesin", "pita", "dipindai", dll.

Ini adalah kutipan dari kertas Turing asli "On Computable Numbers, dengan Aplikasi ke Entscheidungsproblem".

Seorang teman baik modern untuk kertas yang saya rekomendasikan adalah The Annotated Turing oleh Charles Petzold.

Seperti yang Anda lihat, Google hanya berusaha menyerupai mesin yang sangat mirip dengan deskripsi Turing.

EDIT: Mengasumsikan alfabet lengkap Google TM adalah yang ditunjukkan pada akhir permainan setelah mengklik ikon kelinci , dan mengambil dari fakta bahwa itu menghasilkan urutan yang tak terbatas , mendapat lebih banyak baris dan kolom (sehingga kita dapat mengasumsikan kita dapat menambahkan ), telah meninggalkan lompatan (dan juga tumpang tindih kiri) pada setiap baris , memiliki lompatan bersyarat dan tanpa syarat antara baris yang berdekatan, saya pikir itu Turing lengkap .


tetapi apakah mereka secara akut menerapkan mesin turing? yang ini memiliki pita yang terbatas, jadi itu perbedaan yang bisa dilihat. apakah itu perbedaan yang membuat perbedaan? apakah mereka sebenarnya menerapkan mesin yang lebih lemah?
bjelli

2
@ bjelli Yah saya tidak bisa memastikan itu karena karena saya belum mendesainnya, saya tidak tahu semua aturan tentang mesin mereka. Tetapi, jika Anda mencapai final permainan, Anda dapat mengklik ikon Kelinci yang membawa Anda ke rekaman yang lebih panjang, periksa analisisnya di sini: sbf5.com/~cduan/technical/turing . Jadi, mungkin tidak ada batasan pada jumlah garis yang bisa didapat mesin, yang akan membawa Anda ke pita ukuran berapa pun.
pepper_chico


4

Dalam teka-teki, lompatan diperbolehkan di kedua garis, tetapi mereka tidak bisa tumpang tindih. Pada orat-oret kelinci-urutan terakhir pada akhir permainan, mereka memungkinkan melompat pada setiap baris dan mereka bisa bersarang braket sehingga dan [()] diizinkan, tetapi ([)] tampaknya tidak diizinkan.

Saya akan menggunakan asumsi berikut:

  1. 01ϵ
  2. Mesin dapat menggunakan sejumlah saluran tetap
  3. Lompatan kiri diizinkan pada garis apa pun (saya akan menggunakan satu lompatan kiri per baris)
  4. ϵ01

Dengan asumsi ini, Mesin Google Doodle Turing Lengkap .

01ϵ01n

3(n-1)+15n+1

Mesin Google Doodle

ϵ01ϵ0101

GDM mensimulasikan TM sebagai berikut:

  1. 1
  2. j
  3. ϵ01
  4. ϵ
  5. 01
  6. 01

Pilih TM universal favorit Anda dan terapkan dalam prosedur di atas untuk mendapatkan GDM universal.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.