Jumlah gerbang biner yang diperlukan untuk menghitung AND dan OR dari n bit input secara bersamaan

16

Berapa jumlah minimal gerbang biner yang diperlukan untuk menghitung AND dan OR dari bit input secara bersamaan? Batas atas sepele adalah 2 n - 2 . Saya percaya ini optimal, tetapi bagaimana cara membuktikannya? Teknik eliminasi gerbang standar tidak berfungsi di sini karena dengan menetapkan konstanta pada salah satu variabel input yang diremehkan salah satu output.n2n2

Masalahnya juga diberikan sebagai latihan 5.12 dalam buku "Complexity of Boolean Functions" oleh Ingo Wegener dalam bentuk yang sedikit berbeda: "Biarkan . Oleh metode eliminasi yang dapat dibuktikan hanya dengan batas bawah ukuran n + Ω ( 1 ) . Cobalah untuk membuktikan batas bawah yang lebih besar. "fn(x)=x1xnx¯1x¯nn+Ω(1)

Alexander S. Kulikov
sumber
1
@Ryan: Pertanyaannya bukan tentang DAN dari OR tetapi tentang DAN dan ATAU. Saya tidak tahu jawaban untuk pertanyaan Sasha.
Tsuyoshi Ito
1
@TsuyoshiIto Terima kasih, entah bagaimana saya berhasil menguraikannya dengan tidak benar. Ini jelas merupakan masalah nontrivial - orang bisa membayangkan menggunakan jenis gerbang lain untuk mendapatkan keuntungan lebih dari . 2n2
Ryan Williams
2
@ Sasha, sudahkah Anda mencoba menerapkan solver SAT ke contoh kecil (seperti ), seperti pada beberapa makalah Anda sebelumnya? n=4
Ryan Williams
2
@Ryan Ya, tentu. Yang kita tahu adalah bahwa , C 4 = 5 , C 57 . Ini untuk fungsi dari buku (ini adalah 1 iff semua n input bits sama). Ini tumbuh seperti 2 n - 3 . Dan sirkuit dari ukuran 2 n - 3 mudah untuk membangun: pertama menghitung x ix i + 1 untuk semua i = 1 , ... , n -C3=3C4=5C571n2n32n3xixi+1 ( ( n - 1 ) gerbang), dan kemudian menghitung hubungannya dengan mereka ( ( n - 2 ) gerbang). i=1,,n1(n1)(n2)
Alexander S. Kulikov
1
@Tsuyoshi: Saya berpikir bahwa gerbang berfungsi dari Sasha adalah fungsi kedua pertanyaan ( f n ( x ) = x 1 ... x nˉ x 1 ... ˉ x n ) yang dapat dibangun dengan n - 1 gerbang XNOR (diterapkan pada x i , x i + 1 ) dan gerbang n - 2 AND yang diterapkan pada XNOR. 2n3fn(x)=x1xnx¯1x¯nn1xi,xi+1n2
Marzio De Biasi

Jawaban:

14

Makalah Blum & Seysen ini mungkin berguna:

N.Blum, M. Seysen. Karakterisasi semua Jaringan Optimal untuk Perhitungan Simultan AND dan NOR . Acta Inf. 21: 171-181 (1984)

Saya telah berpikir bahwa untuk 2 n - c batas bawah dapat diperoleh dengan menggunakan metode Blum & Seysen, tetapi tampaknya ini tidak terjadi.x1xnx¯1x¯n 2nc

Vladimir Lysikov
sumber
1
Apakah ada versi pdf publik dari kertas Blum dan Seysen yang tersedia?
Marzio De Biasi
@Vladimir, terima kasih untuk referensi! Saya akan mencoba memeriksa apakah metode mereka berlaku dalam hal ini ketika menemukan artikel.
Alexander S. Kulikov
3
@Vladimir, terima kasih lagi! Sebenarnya, makalah ini mengandung jawaban yang tepat untuk pertanyaan saya bahkan lebih lagi: ia mengatakan bahwa untuk menghitung AND dan OR secara bersamaan seseorang membutuhkan dan setiap sirkuit dengan ukuran ini menghitung AND dan OR secara mandiri (ini menarik!). Juga tidak sulit untuk menunjukkan bahwa C ( f n ) C ( A N D , O R ) - c 2 n - c . 2n2C(fn)C(AND,OR)c2nc
Alexander S. Kulikov
@Sasha, ya, saya melewatkan konstruksi sederhana ini. Untuk mengklarifikasi hal-hal, di koran fungsi AND dan NOR dipertimbangkan, jadi untuk AND dan OR kita mendapatkan batas bawah dengan mengubah satu gerbang dan untuk x 1 ... x nˉ x 1 ... ˉ x n --- 2 n - 52n2x1xnx¯1x¯n2n5
Vladimir Lysikov
1
Hanya pengingat @SashaK. jika Anda menyukai jawabannya, silakan "menerimanya" dengan mengklik tanda centang di bawah penghitungan suara.
Suresh Venkat
3

Pertanyaan Anda terkait dengan pertanyaan terkenal tentang menghitung minimum dan maksimum daftar secara bersamaan menggunakan jumlah perbandingan minimum. Dalam hal ini jawabannya adalah .3n/2

Algoritme pintar yang membuktikan batas atas diterjemahkan menjadi sirkuit AND / OR dengan batas yang sama yang Anda dapatkan, karena salah satu perbandingan menghitung minimum dan maksimum.

Namun, batas bawah (diberikan oleh argumen musuh) tampaknya menerjemahkan, setidaknya dalam kasus sirkuit monoton (karena sirkuit AND / OR diterjemahkan menjadi algoritma max / min). Ini akan menyiratkan batas bawah . Mungkin batas bawah yang ketat dapat diperoleh dengan menganalisis argumen musuh.3n/2

Batas atas muncul di "Pengantar Algoritma", di mana Anda juga dapat menemukan argumen mudah yang menunjukkan bahwa sirkuit komparator maks / mnt valid jika mereka bekerja untuk input boolean (gunakan ambang batas yang sesuai). Batas bawah dapat ditemukan misalnya di sini .

Yuval Filmus
sumber
2
Catatan dalam pertanyaan Sasha, semua fungsi Boolean 2-bit dapat digunakan untuk membangun sirkuit.
Ryan Williams
Ya, tidak jelas bagaimana batas bawah dapat diterjemahkan ke kasus semua fungsi biner.
Alexander S. Kulikov