Memutuskan apakah suatu NC

27

Saya ingin bertanya tentang kasus khusus dari pertanyaan " Memutuskan apakah sirkuit NC 0 yang diberikan menghitung permutasi " oleh QiCheng yang telah dibiarkan tidak terjawab.

Sirkuit Boolean disebut sirkuit NC 0 k jika setiap gerbang keluaran secara sintaksis bergantung pada paling banyak gerbang input k . (Kami mengatakan bahwa gerbang keluaran g secara sintaksis tergantung pada gerbang input g ′ ketika ada jalur terarah dari g ′ ke g dalam rangkaian yang dipandang sebagai grafik asiklik terarah.)

Dalam pertanyaan tersebut di atas, QiCheng bertanya tentang kompleksitas masalah berikut, di mana k adalah konstanta:

Misalnya : Sebuah NC 0 k sirkuit dengan n masukan-bit dan n keluaran-bit.
Pertanyaan : Apakah sirkuit yang diberikan menghitung permutasi pada {0, 1} n ? Dengan kata lain, apakah fungsi yang dikomputasi oleh rangkaian merupakan hasil dari {0, 1} n hingga {0, 1} n ?

Ketika Kaveh mengomentari pertanyaan itu, mudah untuk melihat bahwa masalahnya ada di dalam CoNP. Dalam sebuah jawaban, saya menunjukkan bahwa masalahnya adalah melengkapi-TNP untuk k = 5 dan bahwa itu dalam P untuk k = 2.

Pertanyaan . Apa kompleksitas untuk k = 3?

Klarifikasi pada 29 Mei 2013 : “Permutasi pada {0, 1} n ” berarti pemetaan dua arah dari {0, 1} n ke dirinya sendiri. Dengan kata lain, masalahnya bertanya apakah setiap string n- bit adalah output dari rangkaian yang diberikan untuk beberapa string input n- bit.

Tsuyoshi Ito
sumber
1
Catatan pribadi: Ketika saya memposting jawaban untuk pertanyaan QiCheng, saya melakukannya hanya karena masalahnya tampak menarik, tanpa ada pertimbangan aplikasi tertentu. Beberapa bulan setelah itu, saya kebetulan berada dalam situasi di mana saya harus menjelaskan kepada seseorang bahwa itu jauh dari sepele untuk memutuskan apakah suatu program tertentu menghitung permutasi atau tidak. Berkat pertanyaan QiCheng, saya memiliki contoh sempurna (sungguh kebetulan!). Setelah itu, saya menjadi lebih ingin tahu tentang kasus k = 3 dan k = 4. Saya menduga bahwa kasus k = 3 sudah selesai dengan TNP, tapi saya belum bisa membuktikannya.
Tsuyoshi Ito
masalah ini tampaknya merupakan kasus khusus dari masalah Sirkuit Pigeonhole yang ditentukan oleh Papadimitriou ( sciencedirect.com/science/article/pii/S0022000005800637 ) yang lengkap untuk PPP sehubungan dengan pengurangan poli-waktu antara masalah pencarian.
Marcos Villagra
@Marcos Villagra: Terima kasih atas komentarnya, tetapi saya khawatir bahwa dengan mengatakan "kasus khusus", Anda mengubah definisi masalah Sirkuit Pigeonhole secara signifikan. Properti penting dari masalah Sirkuit Pigeonhole adalah bahwa itu adalah masalah pencarian total , sedangkan masalah saat ini (dipandang sebagai masalah pencarian untuk dua input yang menghasilkan output yang sama) bukan masalah pencarian total.
Tsuyoshi Ito

Jawaban:

3

Masalah dengan ini adalah coNP-hard (dan karenanya coNP-complete).k=3

Untuk membuktikan ini, saya akan mengurangi dari 3-SAT untuk komplemen dari masalah ini (untuk diberikan sirkuit, apakah sirkuit memberlakukan fungsi non-bijective).NC30

Pertama definisi awal yang akan membantu:

Kami mendefinisikan grafik berlabel sebagai grafik terarah, beberapa di antaranya memiliki label literal, dengan properti yang setiap verteks memiliki satu tepi masuk yang tidak berlabel, satu tepi masuk berlabel, atau dua tepi masuk yang tidak berlabel.

Pengurangan

Misalkan kita memiliki rumus 3-SAT terdiri dari m klausa, masing-masing berisi tiga literal. Langkah pertama adalah membuat grafik berlabel G dari ϕ . Grafik berlabel ini berisi satu salinan gadget berikut (maaf untuk diagram yang mengerikan) untuk setiap klausa dalam ϕ . Tiga sisi berlabel L1, L2, dan L3 sebaliknya diberi label dengan literal dalam klausa.ϕmGϕϕ

   |
   |               |
   |               |
   |               O<-----\
   |               ^      |
   |               |      |
   |               |      |
   |        /----->O      |
   |        |      ^      |
   |        |      |      |
   |        |      |      |
   |        O      O      O
   |        ^      ^      ^
   |        |      |      |
   |        |L1    |L2    |L3
   |        |      |      |
   |        O      O      O
   |        ^      ^      ^
   |        |      |      |
   |        |      |      |
   |        \------O------/
   |               ^
   |               |
   |               |
   |               O
   |               ^
   |               |
   |

Gadget (satu untuk setiap klausa) semuanya diatur dalam satu siklus besar dengan bagian bawah satu gadget yang terhubung ke bagian atas yang berikutnya.

Perhatikan bahwa pengaturan gadget ini sebenarnya membentuk grafik berlabel (setiap titik memiliki indegree 1 atau 2 dengan hanya tepi yang mengarah ke simpul indegree 1 yang dilabeli).

ϕGϕNC30n+vnϕvGϕGxϕxxinxoutll=xlin=xinll=¬xlin=¬xinvGvvinvout

Ada empat jenis bit keluaran:

xϕxout=xin

v(u,v)vout=vinuin

v(u,v)lvout=vin(uinlin)linxinxl

v(u,v)(w,v)vout=vin(uinwin)

NC30

ϕ

ϕ

ϕG

ϕG

NC30

Pertimbangkan empat jenis bit keluaran:

xϕxout=xinxin

v(u,v)vout=vinuinGvout=vinuin=00=0vout=vinuin=11=0

v(u,v)lvout=vin(uinl)lvinvout=vin(uinl)=vin(uin0)=vin=0lvin(u,v)uuin=1uin=vinlvout=vin(uinl)=vin(uin1)=vinuin=vinvin=0

v(u,v)(w,v)vout=vin(uinwin)

vuwvout=vin(uinwin)=0(00)=0uinuin=L1winwin=L2vinvin=L1L2vout=vin(uinwin)=(L1L2)(L1L2)=0

vuwvout=vin(uinwin)=0(00)=0uinuin=L1L2winwin=L3vin=1vout=vin(uinwin)=1((L1L2)L3)=1(L1L2L3)=11=0(L1L2L3)=1

NC30

ϕ

ϕNC30

xinxϕx

SvGvin

Kami akan membuktikan lemmas berikut di bawah ini:

SS

SS

SGSS

(L1L2L3)(u,v)Lvout=vin(uinL)L=0vout=vin(uinL)=vin(uin0)=vin0=vinvinvSS

SNC30

Yang tersisa hanyalah membuktikan lemma.

GSSvout=vinXXvSXvin=voutXvS

SS

Mikhail Rudoy
sumber
-1

Bukan jawaban yang dicari penulis, lihat komentar yang menjelaskan "permutasi" dalam konteks ini.

Saya mengubah ukuran set dominasi minimum untuk diagram inklusi grup permutasi monogenik: https://oeis.org/A186202

Yang harus Anda lakukan adalah menguji satu anggota dari setiap dekomposisi siklus utama.

Untuk setiap siklus prima seharusnya cukup untuk mengkodekan elemen sebagai (10101010 ...), lalu (01010101 ..)?

------ Klarifikasi ------ Tujuan dari pendekatan ini adalah untuk memodelkan 2 uji kasus Anda sebagai digraf. Jika satu test case yang sukses menyiratkan case test yang berhasil lainnya, maka Anda hanya perlu menguji set dominasi min digaph ruang tes ini. Dalam ruang permutasi OEIS A186202 adalah maks yang harus Anda uji untuk mendeteksi subkelompok non-sepele atau membuktikan tidak ada; jumlah ini masih besar tetapi jauh lebih kecil dari n !.

--Musing-- Dengan menggunakan n-1 nol dan 1 satu dalam iterasi Anda dapat mendeteksi permutasi tetap yang Anda cari. Setelah itu di O (n {(n-1) \ pilih (k-1)} (2 ^ (k-1)) Anda dapat menguji bahwa setiap set variabel (k-1) tidak mempengaruhi setiap indeks dari shuffle Karena k adalah polinomial, apakah saya melewatkan sesuatu?

Chad Brewbaker
sumber
Hmm. Tidak yakin apakah (01) *, (10) * sudah mencukupi. Anda mungkin harus mencoba semua konfigurasi 2 ^ p untuk setiap siklus utama.
Chad Brewbaker
2
(2n)!n11
2
C:{0,1}n{0,1}nx,x{0,1}nC(x)=C(x)xxCpermutes (mengacak / mengatur ulang / memesan ulang) bit input. Apakah Anda melihat perbedaannya? Saya menduga Anda telah menjawab pertanyaan yang salah.
DW
2
Terima kasih telah mencoba membantu, tetapi ketika DW menjelaskan, saya takut pertanyaan yang Anda jawab berbeda dari yang saya tanyakan. "Permutasi pada {0,1} ^ n" berarti fungsi bijective dari {0,1} ^ n ke dirinya sendiri, dan itu tidak berarti mengatur ulang n bit.
Tsuyoshi Ito
3
Chad, maukah Anda menghapus jawaban ini atau setidaknya menambahkan catatan ke atas bahwa ini tidak menjawab pertanyaan Tsuyoshi?
Kaveh