Koneksi antara gerbang NAND dan kelengkapan Turing

14

Saya tahu bahwa gerbang NAND dapat digunakan untuk membuat sirkuit yang menerapkan setiap tabel kebenaran, dan komputer modern dibangun dari gerbang NAND. Apa hubungan teoritis antara gerbang NAND dan kelengkapan Turing? Sepertinya saya bahwa sirkuit gerbang NAND lebih dekat ke automata terbatas daripada mesin Turing. Intuisi saya adalah saya dapat membuat sandal jepit, dan karena itu register dan memori, keluar dari gerbang NAND, dan memori tanpa batas adalah properti penting dari sistem lengkap Turing. Saya mencari penjelasan yang lebih teoretis atau matematis, atau petunjuk tentang apa yang harus dibaca.

bsm
sumber
1
"Komputer modern dibangun dari gerbang NAND" Aku cukup yakin itu salah. Pustaka sel tipikal untuk desain digital berisi puluhan ketika tidak ada gerbang dan fungsinya berbeda-beda (mencari gerbang AOI) serta dalam fan-in dan fan-out.
Pemrogram
Anda benar, maksud saya secara teoretis bahwa semua logika digital dapat dibangun dari NANDS, yang dianggap lengkap secara fungsional
bsm

Jawaban:

9

Memang ada sedikit koneksi. Untuk pemahaman menyeluruh, izinkan saya menjelaskan hubungan antara program dan sirkuit .

Suatu program (atau algoritma , atau mesin ) adalah mekanisme untuk menghitung suatu fungsi. Untuk kepastian, mari kita asumsikan bahwa inputnya adalah string biner , dan outputnya adalah output Boolean . Ukuran input berpotensi tidak terbatas. Salah satu contoh adalah program yang menentukan apakah input adalah pengkodean biner dari bilangan prima.xb

Sirkuit (Boolean) adalah kumpulan instruksi untuk menghitung beberapa fungsi hingga . Kita dapat menggambarkan rangkaian sebagai rangkaian listrik, atau menganggapnya sebagai urutan instruksi (pandangan ini disebut membingungkan program garis lurus ). Secara konkret, kita dapat mengasumsikan bahwa input adalah string biner dengan panjang n , dan outputnya adalah Boolean. Salah satu contoh adalah sirkuit yang menentukan apakah input mengkodekan bilangan prima (seperti sebelumnya, hanya sekarang input harus panjang n ).x nn

Kita dapat mengubah program menjadi rangkaian P n yang mensimulasikan P pada input panjang n . Urutan sirkuit yang sesuai P 0 , P 1 , P 2 , ... tidak sewenang-wenang - mereka semua dapat dibangun oleh sebuah program yang memberikan n keluaran P n . Kami menyebutnya urutan seperti sirkuit sebuah seragam sirkuit (membingungkan, kita sering berpikir tentang urutan sebagai "single" sirkuit P n untuk waktu yang tidak terbatas n ).PPnPnP0,P1,P2,...nPnPnn

Tidak semua urutan rangkaian seragam. Memang, rangkaian rangkaian dapat menghitung setiap fungsi dari string ke Boolean, dapat dihitung atau tidak dapat dihitung! Namun demikian, dalam teori kompleksitas kami tertarik pada model yang tidak seragam di mana sirkuit dibatasi. Sebagai contoh, pertanyaan P = NP menyatakan bahwa masalah NP-complete tidak dapat diselesaikan dengan algoritma waktu polinomial. Ini menyiratkan bahwa masalah NP-lengkap tidak dapat diselesaikan dengan sirkuit seragam ukuran polinomial. Selain itu diduga bahwa masalah NP-lengkap tidak dapat diselesaikan oleh sirkuit ukuran polinomial tanpa persyaratan keseragaman .

Model perhitungan Turing-complete adalah model yang mewujudkan semua fungsi yang dapat dihitung (dan tidak lebih). Sebaliknya, sistem gerbang yang lengkap (seperti AND, ATAU, BUKAN atau NAND) memungkinkan komputasi fungsi-fungsi terbatas yang sewenang-wenang menggunakan sirkuit yang dibuat dari gerbang-gerbang ini. Sistem yang lengkap seperti itu dapat menghitung fungsi yang sepenuhnya arbitrer menggunakan rangkaian sirkuit yang tidak dibatasi.

Yuval Filmus
sumber
Bisakah Anda menjelaskan "rangkaian rangkaian dapat menghitung setiap fungsi dari string ke Boolean, dapat dihitung atau tidak dapat dihitung"? Apakah kemampuan mereka untuk menghitung fungsi yang tidak dapat dihitung (dari perspektif Turing-kelengkapan) berasal dari pembatasan ukuran input?
bsm
2
nn
Bisakah Anda menguraikannya, @YuvalFilmus? Tampaknya aneh bahwa fungsi yang tidak dapat dikomputasi seperti kompleksitas Kolmogorov tiba-tiba akan "dapat dikomputasi" menggunakan sirkuit.
Cort Ammon - Reinstate Monica
2
fn
3

Anda sebenarnya benar. Sirkuit logika kombinasional setara dengan otomat terbatas. Gerbang NAND tidak membuat mereka lebih kuat; mereka digunakan karena cukup murah untuk membangun sirkuit logika digital dengan hanya satu jenis gerbang daripada membangunnya dengan semua gerbang yang berbeda. Bahkan, gerbang NAND dapat dibangun hanya dari gerbang AND dan gerbang NOT. Sandal jepit membuat sirkuit Turing-lengkap. Ini kunci yang praktis:

Sirkuit kombinasional ~ Automata terbatas ~ Bahasa reguler ~ Ekspresi reguler ~ Kalkulus proposisional ~ Program garis lurus

Sirkuit berurutan ~ Mesin Turing ~ Bahasa yang dihitung berulang secara rekursif ~ Predikat kalkulus ~ rekursifμ

Jika Anda ingin mempelajari lebih lanjut, ada buku yang sangat bagus yang dapat Anda unduh dalam bentuk PDF gratis yang menjelaskan semua ini:

https://cs.brown.edu/people/jes/book/pdfs/ModelsOfComputation.pdf

pengguna628544
sumber