Apakah penambahan dapat dilakukan dalam waktu kurang dari kedalaman 5?

21

Dengan menggunakan algoritma carry look ahead, kita dapat menghitung penambahan menggunakan kedalaman ukuran polinomial 5 (atau 4?) . Apakah mungkin mengurangi kedalaman? Bisakah kita menghitung penambahan dua bilangan biner menggunakan rangkaian keluarga ukuran polinomial dengan kedalaman kurang dari yang diperoleh dengan algoritma carry look forward?AC0

Apakah ada lowerbin polinomial super untuk ukuran rangkaian rangkaian komputasi di mana adalah 2 atau 3? dACd0d

Maksud saya kedalaman kedalaman alternatif.

Anonim
sumber
Bisakah Anda memberi tahu kami nama Anda? Siapa kamu? Selama sebulan terakhir ini orang-orang membuat nama pengguna baru di sini, mengajukan pertanyaan dan kemudian menghapus nama pengguna itu!
Tayfun Bayar
14
@ Geekster, umumnya orang tidak diharuskan membuat akun atau menggunakan nama asli mereka (namun disarankan untuk melakukannya karena berbagai alasan). Jika Anda memiliki keprihatinan umum tentang sesuatu, silakan gunakan Theoretical Computer Science Meta untuk meningkatkannya.
Kaveh
4
Ini bisa dipaksakan dengan memverifikasi bahwa tidak ada kedalaman- 4 AC 0 sirkuit dapat menghitung jumlah ( m + 1 ) -bit dari dua input m- bit untuk beberapa m tetap ; hanya ada banyak fungsi boolean dari bit input yang dapat muncul di setiap kedalaman. 0(m+1)mm
mjqxxxx
5
@ mjqxxxx: Bagaimana Anda menegakkan batasan ukuran polinomial pada sirkuit AC0 ketika memaksa brute untuk m tetap? @ OP: Apakah kedalaman rangkaian terbaik 4 atau kedalaman 5 saat ini?
Robin Kothari
14
@ mjqxxxx: Setiap fungsi Boolean dapat dihitung dengan kedalaman 2 sirkuit. Sekarang, misalkan Anda menemukan untuk tetap Anda m sirkuit ukuran s . Bagaimana Anda menilai apakah ada sirkuit ukuran cn untuk setiap n , di mana c=s/m , atau apakah hanya ada sirkuit berukuran 2ϵn , di mana ϵ=(logs)/m ? Tidak ada cara untuk menyimpulkan informasi asimptotik dari contoh yang terbatas.
Emil Jeřábek mendukung Monica

Jawaban:

13

Menurut Teorema 3.1 dalam Alexis Maciel dan Denis Therien Threshen Circuits of Smallity-Depth memang ada rangkaian kedalaman-3 untuk menghitung penambahan dua angka.

The tepat terikat adalah dimana Δ 2 = Σ 2Π 2 masalah yang memiliki kedalaman-2 A C 0 sirkuit dengan kedua , gerbang di bagian atas dan N C 0 1 sirkuit yang N C 0 sirkuit kedalaman satu (lihat makalah untuk penjelasan rinci tentang notasi).Δ2NC10Δ2=Σ2Π2AC0,NC10NC0

Ide bukti utama adalah:

  • Pertama, ungkapkan sirkuit Carry-lookahead sebagai NC0Δ2NC0
  • Selanjutnya, aktifkan properti penutupan untuk menulis ini sebagai Δ 2N C 0Δ2Δ2NC0
  • Akhirnya, gunakan fakta (juga terbukti di koran) bahwa NC0Δ1NC10
SamiD
sumber
9

Kedalaman 2 sirkuit memerlukan ukuran eksponensial untuk menghitung penambahan karena sirkuit kedalaman 2 harus berupa DNF atau CNF dan mudah untuk memverifikasi bahwa ada banyak minterm dan maxterms yang secara eksponensial.

Peringatan : bagian di bawah ini buggy . Lihat komentar di bawah jawabannya.

Cara saya menghitungnya, penambahan dapat dilakukan di kedalaman 3. Asumsikan dan b i adalah bit ke- i dari dua angka, di mana 0 adalah indeks LSB dan n dari MSB. aibii0n

Mari kita menghitung th sedikit jumlahnya, s saya dengan cara yang standar dengan membawa tampilan depan:isi

si=aibici

di mana adalah XOR dan c i adalah carry yang dihitung sebagai:ci

ci=jj<i(gjpj)

dan berarti bahwa lokasi j "menghasilkan" carry:gjj

gj=(ajbj)

dan berarti bahwa carry diperbanyak dari j ke i :pjji

pj=kj<k<i(ajbj)

Menghitung kedalaman, adalah kedalaman 2, dan c i adalah kedalaman 3. Sementara akan terlihat bahwa s i adalah kedalaman 4 atau 5, itu benar-benar juga hanya kedalaman 3 karena merupakan fanin perhitungan dibatasi kedalaman 3 sirkuit jadi salah satu dapat mendorong dua tingkat teratas ke bawah menggunakan rumus de-Morgan, sambil meniup ukuran rangkaian dengan jumlah polinomial.pjcisi

Noam
sumber
4
Saya tidak begitu mengerti bagaimana perhitungan fanin yang dibatasi dari sirkuit 3 secara otomatis adalah kedalaman 3. Jika, katakanlah, Anda menulis as ( c i¬ ( a ib i ) ) ( ¬ c i( a ib i ) ) , Anda dapat membuat yang pertama melepaskan sirkuit kedalaman 3 dengan di atas, dan yang kedua melepaskan sirkuit kedalaman 3 dengan si(ci¬(aibi))(¬ci(aibi))di atas. Saya tidak melihat bagaimana mendorong disjungsi atas ke bawah tanpa meningkatkan kedalaman satu per satu untuk menjelaskan ketidakcocokan antara jenis ikat di dua bagian. Ini dapat diperbaiki dengan mencatat bahwa juga dapat dihitung dengan cara yang berbeda dengan sirkuit 3 kedalaman ...ci
Emil Jeřábek mendukung Monica
1
... dengan di atas. Di sisi lain, semua sirkuit 3 kedalaman telah terikat kipas bawah, jadi saya akan menyebutnya kedalaman 2 1/2.
Emil Jeřábek mendukung Monica
1
Itu sudah jelas. Apa yang saya tunjukkan adalah bahwa seperti yang tertulis, Anda tidak memiliki ATAU dua sirkuit mendalam dengan DAN di atas. Anda memiliki ATAU dari dua sirkuit d kedalaman , salah satunya memiliki AND di atas, dan yang lainnya memiliki ATAU di atas. Saya ragu sirkuit seperti itu dapat dikonversi ke kedalaman d secara umum. Pikirkan tentang polinomial fan-in AND dan OR sebagai quantifiers. Anda dapat mengekspresikan ( x 1x 2 ... Q x d ϕ ( x 1 , ... , x d ) ) ( xddd sebagai rumus prenex denganblok d quantifier, tetapi Anda membutuhkan d + 1 blok untuk mengekspresikan ...(x1x2Qxdϕ(x1,,xd))(x1x2Qxdψ(x1,,xd))dd+1
Emil Jeřábek mendukung Monica
1
(x1x2Qxdϕ(x1,,xd))(x1x2Q¯xdϕ(x1,,xd))
5
fn(x1,,xn)ACd0dx0fnACd0Cn(x0,,xn)Cnx0=1ACd0¬fnACd0fn