Sirkuit Logika Combinasional dan Teori Komputasi

8

Saya mencoba untuk menghubungkan Combinational Logic Circuits (komputer berdasarkan hanya pada gerbang logis) dengan semua yang saya pelajari baru-baru ini dalam Theory of Computation.

Saya bertanya-tanya apakah sirkuit logika kombinasional dapat mengimplementasikan komputasi dengan cara yang sama seperti mesin negara terbatas. Mereka tampak sangat berbeda:

Finite State Machines, bagaimanapun, memiliki memori yang terdefinisi dengan baik dalam bentuk keadaan yang bisa masuk. Sirkuit logika kombinasional, bagaimanapun, tidak memiliki memori yang terdefinisi dengan baik sehingga untuk mengimplementasikan algoritma yang membutuhkan memori mereka agak menggunakan beberapa metode koneksi serial yang aneh (lihat caranya Cout dari penambah sebelumnya terhubung ke Cin penambah saat ini pada gambar di bawah).

Betapapun berbeda secara radikal tampaknya, mereka berdua tampaknya melakukan perhitungan. Sebagai contoh, keduanya dapat mengimplementasikan algoritma untuk penambahan biner (dan bahkan perkalian biner) namun perbedaan implementasi tersebut adalah:

FSM:
masukkan deskripsi gambar di sini

Sirkuit Logika Combinasional (C, seperti padaCin dan Cout, singkatan dari Carry):
masukkan deskripsi gambar di sini

Saya bahkan berpikir (walaupun masih sangat tidak pasti) bahwa kita dapat mengubah setiap FSM menjadi Sirkuit Logika Combinasional yang sesuai.

Jadi, saya bertanya pada diri sendiri:

Bisakah Sirkuit Logika Combinasional juga dianggap sebagai model komputasi sesaat? Bisakah kita menerapkan semua konsep yang kita pelajari dalam Teori Komputasi dan Teori Kompleksitas Komputasi, seperti kompleksitas ruang dan komputabilitas, untuk itu?

Di satu sisi, sepertinya mereka tidak cocok sebagai model perhitungan karena mereka tidak memiliki operasi dasar (seperti membaca / menulis kaset, pengurangan fungsi, langkah-langkah pencarian bukti paradigma pemrograman logis), mereka menerapkan perhitungan mereka secara instan.
Tetapi di sisi lain, mereka tampaknya cocok sebagai model perhitungan karena kita dapat memodelkan semua jenis perhitungan dengan mereka (penambahan biner adalah salah satu contoh), dan mereka dapat dilihat secara abstrak (dengan hanya berfokus pada tabel kebenaran dan gerbang logis dan lupa tentang sirkuit fisik yang mungkin mengimplementasikannya).
Jadi, apa yang kalian pikirkan?

Juga, jika memang dapat dianggap sebagai model komputasi (instan), apakah kalian punya contoh model komputasi lain yang serupa (juga instan)?

Terima kasih banyak sebelumnya

kutu buku
sumber
Anda mungkin ingin melihat ini: stackoverflow.com/questions/4908893/…
Pengguna

Jawaban:

9

Sirkuit logika umum dalam teori kompleksitas, di mana mereka pergi dengan sirkuit nama . Ada perbedaan besar antara rangkaian dan model perhitungan seperti mesin Turing: setiap rangkaian hanya dapat menangani input dengan ukuran tetap. Untuk memperbaikinya, di bawah model perhitungan sirkuit, untuk setiap panjang inputn ada sebuah sirkuit Cn, dan bersama-sama mereka menghitung fungsi pada string yang panjangnya sewenang-wenang. Model perhitungan ini, seperti yang disebutkan, terlalu kuat: ia dapat menghitung fungsi yang tidak dapat dihitung, memang semua fungsi. Masalahnya adalah urutan rangkaian yang tidak terbatas tidak harus memiliki deskripsi yang terbatas. Untuk memperbaiki masalah ini, kami biasanya menuntut bahwa sirkuitnya seragam , yaitu, bahwa mereka dihasilkan oleh beberapa mesin Turing, yang pada inputn menghasilkan Cn.

Model sirkuit sangat populer dalam teori kompleksitas, bahkan tanpa batasan keseragaman. Alasannya adalah pengamatan berikut: mesin Turing yang berjalan dalam waktu polinom dapat dikonversi ke urutan (seragam) rangkaian ukuran polinom, dengan menggunakan ide-ide teorema Cook (yang menunjukkan bahwa SAT adalah NP-complete). Oleh karena itu jika Anda ingin membuktikan bahwa masalah tertentu tidak dapat diselesaikan dalam waktu polinomial, itu sudah cukup untuk menunjukkan bahwa itu tidak dapat diselesaikan oleh sirkuit ukuran polinomial.

Yuval Filmus
sumber
Saya pikir saya mengerti inti dari jawaban ini. Perbaiki saya jika saya salah: kompleksitas waktu mesin Turing membatasi kompleksitas spasial dari mesin rangkaian analog. Tetapi saya tidak mengerti pernyataan ini: "Model perhitungan [sirkuit], seperti yang disebutkan, terlalu kuat: ia dapat menghitung fungsi yang tidak dapat dihitung, memang semua fungsi." Modelnya sendiri terlalu kuat? Atau pernyataan awal Anda tentang model lebih kuat dari pada model yang sebenarnya?
kdbanman
Sirkuit tak terbatas adalah model komputasi yang terlalu kuat. Anda harus membatasi mereka entah bagaimana - membatasi ukuran atau struktur mereka, atau menuntut agar seragam, atau keduanya.
Yuval Filmus
Mengapa membatasi model? Kendala apa yang harus mereka patuhi? Jika mereka adalah konstruksi teoretis, maka tidak bisakah mereka melakukan apa pun yang kita suka?
kdbanman
Mereka bisa, tetapi mereka tidak berguna untuk teori kompleksitas, karena mereka dapat menghitung setiap fungsi yang mungkin.
Yuval Filmus