Memutuskan apakah rangkaian

27

Apa kerumitan memutuskan apakah rangkaian dengan bit input dan bit output menghitung permutasi dari ? dengan kata lain, apakah setiap string bit di merupakan output dari rangkaian untuk beberapa input? Sepertinya masalah yang telah dipelajari, tetapi saya tidak dapat menemukan referensi.NC0n { 0 , 1 } n { 0 , 1 } nnn{0,1}n{0,1}n

QiCheng
sumber
1
Batas yang jelas adalah yang juga berfungsi untuk (periksa apakah fungsinya injeksi). PcoNPP
Kaveh
Apa yang Anda maksud dengan “sirkuit NC0”? Ungkapan yang biasa adalah "rangkaian keluarga NC0," yang (mungkin sayangnya) sering disingkat menjadi "sirkuit NC0," tetapi saya tidak berpikir bahwa yang Anda maksud adalah rangkaian sirkuit keluarga NC0 dalam pertanyaan Anda.
Tsuyoshi Ito
1
Dengan sirkuit , maksud saya bahwa setiap bit output dari rangkaian hanya bergantung pada jumlah bit input yang konstan. NC0
QiCheng
3
Ya saya bertanya tentang keluarga. Agar lebih jelas, Anda dapat mengubah menjadi mana setiap bit output hanya bergantung pada bit input dalam keluarga. N C 0 5 5NC0NC505
QiCheng
1
Ini tidak menjawab pertanyaan Anda, tetapi jika masalahnya digeneralisasi sehingga setiap bit output diizinkan bergantung pada bit input O (log n), maka saya pikir masalahnya adalah selesai-TNP di bawah Turing reducibility. Ini mengikuti dari kelengkapan coNP dari reversibilitas terbatas automata seluler dua dimensi ( Durand 1994 ) dengan mewakili setiap sel dalam automata seluler dua dimensi sebagai string biner O (log n) -bit.
Tsuyoshi Ito

Jawaban:

29

Kekerasan

Berikut komentar Anda pada pertanyaan, kami akan memanggil sirkuit di mana setiap bit output tergantung pada paling k bit masukan sebuah “NC 0 k sirkuit.” Menggunakan istilah ini, masalah Anda adalah CoNp-lengkap dalam kasus NC 0 5 sirkuit. Yaitu, masalah berikut ini lengkap dengan CONP.

Instance : Sebuah sirkuit Boolean C dengan n bit input dan bit output n di mana setiap bit output paling banyak bergantung pada lima bit input.
Pertanyaan : Apakah pemetaan dari {0,1} n ke dirinya sendiri dihitung oleh C bijective?

Sebagai Kaveh berkomentar, itu jelas dalam coNP, bahkan tanpa terikat pada jumlah bit input di mana masing-masing bit output tergantung. Untuk membuktikan kekerasan CoNP, kami akan mengurangi 3SAT untuk melengkapi masalah saat ini. Gagasan kunci dari reduksi adalah sama dengan yang digunakan dalam makalah [Dur94] oleh Durand, yang saya sebutkan dalam komentar pada pertanyaan, tetapi keseluruhan reduksi jauh lebih sederhana dalam kasus kami.

Mengingat 3CNF rumus φ dengan n variabel dan m klausa, kami membangun sebuah sirkuit Boolean C dengan ( n + m ) masukan bit dan ( n + m ) bit output sebagai berikut. Kami memberi label bit input sebagai x 1 , ..., x n , y 1 , ..., y m , dan bit output sebagai x1 , ..., xn , z 1 , ..., z m . Kami menganggap bahwa bit input x1 ,…, x n tentukan penugasan kebenaran ke n variabel dalam φ .

  • xi = x i untuk 1≤ in . Artinya, n bit input pertama selalu disalin ke n bit output pertama.
  • Untuk 1≤ im , jika klausa i dari φ terpenuhi, maka z i = y iy i +1 , di mana subscript ditafsirkan modulo m . Kalau tidak, z i = y i .

Perhatikan bahwa setiap bit output paling banyak bergantung pada lima bit input. Aku menghilangkan bukti kebenaran pengurangan, tetapi gagasan kunci (yang saya pinjam dari [Dur94]) adalah bahwa jika φ adalah satisfiable dan masukan bit x 1 , ..., x n ditetapkan untuk tugas memuaskan dari φ , maka yang m bit output z 1 , ..., z m dibatasi untuk memiliki bahkan paritas, dan karena itu rangkaian tidak bisa permutasi. Di sisi lain, jika bit input x 1 , ..., x n diatur ke penugasan satisf yang tidak memuaskan , maka bit output z1 , ..., z m dapat diatur untuk apa-apa; karena ini, jika φ tidak memuaskan, maka rangkaian adalah permutasi.

Ketertelusuran

Di sisi yang dapat ditelusuri, masalah Anda adalah dalam P jika sirkuit NC 0 2 . Ini ditunjukkan sebagai berikut. Secara umum, setiap bit keluaran dalam sirkuit Boolean untuk permutasi seimbang ; yaitu, tepat setengah dari string input mengatur bit output ke 1. Namun, setiap fungsi Boolean seimbang dari {0,1} 2 hingga {0,1} adalah affine ; yaitu, salinan bit input tunggal, XOR dari dua bit input, atau negasi dari mereka. Oleh karena itu, pertama-tama kita dapat memeriksa bahwa setiap bit output seimbang, dan kemudian memeriksa bijektivitas dengan eliminasi Gaussian.

Saya tidak tahu kompleksitas dalam kasus sirkuit NC 0 3 atau dalam kasus sirkuit NC 0 4 .

Referensi

[Dur94] Bruno Durand. Pembalikan automata seluler 2D: beberapa hasil kompleksitas. Theoretical Computer Science , 134 (2): 387-401, November 1994. DOI: 10.1016 / 0304-3975 (94) 90244-5 .

Tsuyoshi Ito
sumber
3
Saya memposting pertanyaan tindak lanjut tentang kasus sirkuit NC ^ 0_3.
Tsuyoshi Ito