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.