Sirkuit aritmatika dengan hanya satu ambang gerbang

21

Ketika dibatasi hingga - input, setiap -circuit menghitung beberapa fungsi . Untuk mendapatkan fungsi boolean , kita bisa menambahkan satu gerbang ambang batas fanin-1 sebagai gerbang keluaran. Pada input , ambang yang dihasilkan - sirkuit kemudian menghasilkan jika , dan menghasilkan jika ; ambang dapat berupa bilangan bulat positif, yang mungkin bergantung pada01{+,×}F(x1,,xn) a { 0 , 1 } n { + , × } 1 F ( a ) t 0 F ( a ) t - 1 t = t n nF:{0,1}nNa{0,1}n {+,×}1F(a)t0F(a)t1t=tnntetapi tidak pada nilai input. Sirkuit yang dihasilkan menghitung beberapa fungsi boolean (monoton) .F:{0,1}n{0,1}

Pertanyaan: Dapatkah threshold -circuits disimulasikan secara efisien oleh -circuits? { , }{+,×}{,}

Di bawah "efisien" yang saya maksudkan "dengan paling banyak peningkatan ukuran polinom." Jawabannya jelas "ya" untuk ambang : cukup ganti dengan , by , dan hapus gerbang ambang batas terakhir. Yaitu, -circuits sebenarnya adalah threshold- -circuits. Tetapi bagaimana dengan ambang batas yang lebih besar, katakanlah, ? + × { , } 1 { + , × } t = 2t=1+×{,}1 {+,×}t=2

Kita dapat mendefinisikan analog aritmatika dari sebagian besar kelas rangkaian boolean dengan hanya menggunakan alih-alih OR, alih-alih AND, dan alih alih . Sebagai contoh, sirkuit adalah -circuit dengan kedalaman konstan dengan gerbang fanin dan terikat , dan input dan . Agrawal, Allender dan Datta telah menunjukkan ambang itu = . (Ingatlah bahwa itu sendiri adalah tepatC + × 1 - x i ˉ x i # A C 0 { + , × } + × x i 1 - x i#CC+×1xix¯i#AC0{+,×}+×xi1xi T C 0 A C 0#AC0TC0AC0bagian dari ; ambil, katakanlah, fungsi Mayoritas.) Dengan kata lain, sirkuit ambang kedalaman konstan dapat secara efisien disimulasikan oleh sirkuit kedalaman konstan, hanya dengan gerbang ambang tunggal! Namun, perhatikan bahwa pertanyaan saya adalah tentang sirkuit monoton (tidak ada Minus " " sebagai gerbang, dan bahkan tidak ada sebagai input). Bisakah satu (terakhir) gerbang threshold menjadi sangat kuat juga? Saya tidak tahu hal-hal ini, jadi petunjuk terkait apapun dipersilakan. { + , - , × }TC0{+,,×}1 - x i1xi

NB Masih ada hasil terkait lainnya yang menarik karena Arnold Rosenbloom: -circuits dengan hanya satu fungsi monoton karena gerbang keluaran dapat hitung setiap fungsi irisan dengan gerbang . Fungsi slice adalah fungsi boolean monoton yang, untuk beberapa tetap , menghasilkan (resp. ) pada semua input dengan lebih sedikit (resp., Lebih) daripada . Di sisi lain, penghitungan yang mudah menunjukkan bahwa sebagian besar fungsi slice memerlukan -lingkaran dengan ukuran eksponensial. Dengan demikian, satu gerbang output tambahan "tidak bersalah" dapat{+,×}O ( n ) k 0 1 k { , , ¬ }g:N2{0,1}O(n)k01k{,,¬}buat sirkuit monoton mahakuasa! Pertanyaan saya menanyakan apakah ini juga bisa terjadi ketika adalah gerbang ambang batas fanin- . 1g:N{0,1}1


AKTUALISASI (ditambahkan 03.11.2014): Emil Jeřábek telah menunjukkan (melalui konstruksi yang sangat sederhana, lihat jawabannya di bawah) bahwa jawabannya adalah "ya" selama untuk konstanta . Jadi, pertanyaannya tetap terbuka hanya untuk ambang super polinomial (dalam ). ctnccn

Biasanya, dalam aplikasi, hanya ambang besar yang berfungsi: kita biasanya memerlukan ambang bentuk untuk . Katakan, jika menghitung jumlah jalur - dalam grafik yang ditentukan oleh input - , maka untuk dengan , yang threshold- versi memecahkan adanya Hamiltonian - masalah jalan di -vertex grafik (lihat, misalnya di sini ). ε > 0 F : { 0 , 1 } nN s t 0 1 t = m m 2 m n 1 / 3 t F s t m2nϵϵ>0F:{0,1}nN st01t=mm2mn1/3tF stm

(Ditambahkan 14.11.2014): Karena Emil menjawab sebagian besar pertanyaan saya, dan karena kasus ambang eksponensial tidak terlihat, saya sekarang menerima jawaban Emil (sangat bagus) ini.


Stasys
sumber
Tunggu ... ukuran eksponensial? Saya pikir Anda dapat menerapkan fungsi slice dalam ukuran polinomial dengan gerbang boolean, itu hanya sebuah rumus (yang tidak dapat menggunakan kembali hasil antara lebih dari sekali) yang harus berukuran eksponensial.
Zsbán Ambrus
@ Zsbán Ambrus: Ada paling sirkuit ukuran , tapi setidaknya berbeda fungsi -slice sudah untuk ; a, b konstanta positif. S 2 2 b nSaSS22bnk = n / 2kk=n/2
Stasys
Ambang 2, dan lebih umum, ambang yang dibatasi oleh , dapat disimulasikan secara efisien dengan melakukan perhitungan dalam semiring . ( { 0 , , t } , min { x + y , t }2nc({0,,t},min{x+y,t},min{xy,t})
Emil Jeřábek mendukung Monica
2
Anda mendapatkan sirkuit secara langsung. Ganti setiap node dengan node , di mana menghitung predikat Boolean . (Anda tidak perlu karena menghitung konstanta , tetapi menyederhanakan ekspresi di bawah ini.) Dalam representasi ini, dan dapat disimulasikan oleh sirkuit ukuran : mis., jika , maka . c t + 1 c 0 , ... , c t c i c i c 0 1 + { , } O ( t 2 ) c = a + b c i = j + k i ( a jb k ),ct+1c0,,ctcicic01+{,}O(t2)c=a+bci=j+ki(ajbk)
Emil Jeřábek mendukung Monica
1
@Emil Jeřábek: Bagus sekali! Saya sekarang menambahkan komentar tentang ini. Sebenarnya, mungkin layak untuk menempatkan komentar ini sebagai jawaban: kasus ambang polinomial juga tidak segera jelas (setidaknya untuk saya).
Stasys

Jawaban:

16

Jawabannya adalah "ya" jika . Secara umum, ambang -circuit dari ukuran dengan ambang dapat disimulasikan oleh -circuit dengan ukuran . { + , } s t { , } O ( t 2 s )t=nO(1){+,}st{,}O(t2s)

Pertama, amati bahwa cukup untuk mengevaluasi rangkaian di dengan penambahan dan perkalian terpotong: khususnya, jika , maka , dan juga juga, atau .a , a t a + b , a + b t a b , a b t a b = a b ( = 0 ){0,,t}a,ata+b,a+btab,abtab=ab(=0)

Dengan pemikiran ini, kita dapat mensimulasikan rangkaian dengan rangkaian monoton Boolean dengan mengganti setiap simpul dengan simpul , di mana dimaksudkan untuk menghitung predikat . (Kita perlu hanya untuk kenyamanan notasi, itu menghitung fungsi konstan ) Jika adalah variabel input Boolean , kita mengambil , . Jika adalah gerbang tambahan, katakanlah , kami mengimplementasikannya melalui Gerbang multiplikasi ditangani dengan cara yang sama.c 0 , ... , c t c i c i c 0 1 c x c 1 = x c 2 = = c t = 0cc0,,ctcicic01cxc1=xc2==ct=0c = a + b c i = j , k cc=a+b

ci=j,ktj+ki(ajbk).

Ini membutuhkan gerbang per satu gerbang dari sirkuit asli. Sebagai optimasi kecil, kita dapat menguranginya menjadi dengan meletakkan sehingga setiap digunakan sebagai input dari hanya satu dari gerbang .O ( t 2 ) c tO(t3)O(t2) ajbkci

ct=j+kt(ajbk),ci=ci+1j+k=i(ajbk),i<t,
ajbkci
Emil Jeřábek mendukung Monica
sumber