Jawaban singkat. Versi operator SAT dapat dipecahkan secara efisien - setidaknya, jika kita mengasumsikan sirkuit sewenang-wenang dari gerbang dua-input tanpa kipas-keluar, atas setiap pilihan gate-set yang diinginkan.
Jawaban panjang.
Saya menganggap bentuk masalah boolean berikut:
x∈{0,1}nn ⩾ 2 G C G x x x Cn⩾2GCG xxxC
Secara khusus, kami tidak memaksakan struktur tertentu pada sirkuit (selain dari pohon biner), jangan biarkan kipas angin keluar (sehingga setiap bit digunakan hanya sekali), dan gerbangnya mungkin asimetris. Dengan hanya mengizinkan gerbang dua-bit, saya mengecualikan gerbang NOT (tetapi yang dapat disimulasikan dengan memiliki beberapa gerbang yang terkait satu sama lain dengan negasi, seperti AND / NAND ; dan saya juga mengecualikan gerbang yang hanya menghasilkan konstanta tanpa input) , sehingga jumlah gerbang dalam rangkaian pada kenyataannya akan selalu menjadi untuk input bit. Demi singkatnya, saya akan merujuk pada 2-TREE-OPSAT di bawah ini hanya sebagai OPSATC x n - 1 nCxn−1n; meskipun analisis masalah dapat menjadi jauh lebih sulit untuk sirkuit memungkinkan sewenang-wenang k Input gerbang ( k-POHON-OPSAT ) atau memungkinkan fan-out (yang kita sebut k-fanout-OPSAT ).
[ Diedit untuk menambahkan : kita dapat dengan mudah mengadaptasi ini untuk mempertimbangkan masalah yang lebih umum dari revisi pertanyaan Anda saat ini, di mana kami berupaya memetakan ke nilai target , dengan menukar peran dan dalam analisis di bawah ini; ini memiliki efek mempertukarkan peran AND dan OR , NAND dan NOR , dll. ]
x ∈ { 0 , 1 } ∗ b ∈ { 0 , 1 } 0 1x∈{0,1}∗b∈{0,1}01
Untuk pilihan tetap , masalah memilih pohon yang cocok dengan gerbang yang sesuai tidak berbeda dengan disjungsi logis: menggunakan persamaan seperti
kita dapat melakukan reduksi antara koleksi yang terkait dengan set gerbang yang lebih rumit ke set gerbang yang sederhana (dan kuat); a dapat berbicara tentang satu set gerbang yang mampu meniru gerbang lain yang bukan milik set, dengan bijak memilih beberapa elemen yang memiliki efek yang sama (ketika disajikan dengan input tertentu) sebagai gate . Secara khusus, kombinasi gerbang tertentu (seperti ) dapat mensimulasikan fungsi konstan yang menghasilkanx ∈ { 0 , 1 } n ATAU ( x , y )x∈{0,1}n≡( DAN(x,y)∨PARITY ( x , y ) ) G G ∉ G { ATAU , NAND } 1
OR(x,y)≡(AND(x,y)∨PARITY(x,y))
GG∉G{OR,NAND}1: kami mengatakan bahwa set-gerbang seperti itu bersifat
tautologis .
Kami melanjutkan dengan mempertimbangkan set gerbang termasuk berbagai jenis gerbang , kemudian mengecualikan gerbang tersebut dari kasus analisis selanjutnya, untuk menunjukkan bahwa set gerbang yang melibatkan salah satu gerbang mengarah pada masalah yang dapat ditelusuri. Kami akan melanjutkan dalam urutan jumlah string dua-bit yang memenuhi gerbang yang dimaksud, mulai dari gerbang konstan ke gerbang konstan .G 1 0G10
Untuk setiap gerbang yang ditetapkan yang berisi gerbang konstan , kita dapat dengan mudah membangun sirkuit menggunakan gerbang itu saja, dalam hal ini menerima .G G ( x , y ) = 1 C C xGG(x,y)=1CCx
ATAU dan NAND. Untuk setiap gerbang yang ditetapkan yang berisi : jika semua gerbang lain memenuhi , maka tidak ada keuntungan untuk memilih gerbang lain selain dalam membangun sirkuit . Sirkuit hanya gerbang menerima string apa pun kecuali . Kalau tidak, ada gerbang sehingga bersifat tautologis. Jadi setiap instance OPSAT dengan mudah; dan pernyataan serupa berlaku untuk .G ATAU G ∈ G G ( x , y )GORG∈G⟹ATAU ( x , y ) ATAU C ATAU x ∈ 0 ∗ G ∈ G { G , OR } ATAU ∈ G NAND ∈ GG(x,y)⟹OR(x,y)ORCORx∈0∗G∈G{G,OR}OR∈GNAND∈G
Gerbang yang menyerupai implikasi. Pertimbangkan gerbang , yang hanya menghasilkan nol jika . Untuk yang berikut, analisis serupa akan berlaku untuk gerbang .
Pertimbangkan string apa pun . Jika berakhir pada , dekomposisi ke dalam substring formulir ; pada setiap , kami menerapkan dari kanan ke kiri secara rekursif , yang menghasilkan output untuk setiap . (Untuk substring dengan panjang 1, kami menggunakan sirkuit sepele, yaitu membiarkan input itu sendiri.) Demikian pula, jikaG ( x , y ) = ¬ x ∨ y ( x , y ) = ( 1 , 0 ) G ′ ( x , y ) = x ∨ ¬ y x ∈ { 0 , 1 } n x 0 x w j = 1 ∗ 0 w j G 0 w j x 1 x wG(x,y)=¬x∨y(x,y)=(1,0)G′(x,y)=x∨¬y
x∈{0,1}nx0xwj=1∗0wjG0wjx berakhir pada , mendekomposisi ke dalam substring dari , dan secara rekursif menerapkan dari kiri ke kanan pada setiap , yang menghasilkan output untuk setiap . Jadi kita dapat mengurangi masalah untuk membangun sirkuit yang dipenuhi baik dengan atau , di mana adalah jumlah substring atau . Untuk , kami dapat menerima menggunakan gerbang dengan menerapkan secara rekursif dari kiri ke kanan. Ini hanya meninggalkan kasusnya1xj = 0 ∗ 1 G w j 1 w j 0 m 1 m m 1 ∗ 0 0 ∗ 1 m ⩾ 2 G G m = 1 x ∈ 1 ∗ 0 x = 1 ∗ 0 G 1 ∗ 0 0 G H ∈ G H ( 1 , 0 ) = 1 { G , Hwj=0∗1Gwj1wj0m1mm1∗00∗1m⩾2GGm=1 , untuk kasus yang bermasalah adalah input . Untuk , sirkuit apa pun yang hanya terdiri dari gerbang hanya akan menghasilkan string lebih pendek dari bentuk , yang pada akhirnya menghasilkan string bit-tunggal : sehingga tidak ada sirkuit gerbang dapat dipenuhi oleh input ini. Jika ada juga gerbang yang , maka bersifat tautologis; atau, jika ada gerbang yang , kita dapat mengurangi string dari bentukx∈1∗0
x=1∗0G1∗00GH∈GH(1,0)=1} H ∈ G H ( 1 , 1 ) = 0 11 ∗ 0 ( 1 ∗ 0 ) ∗ H x x ∈ 1 ∗ 0 G{G,H}H∈GH(1,1)=011∗0ke string bentuk , dengan menerapkan ke dua bit pertama . Kalau tidak, tidak ada rangkaian yang dapat dibangun yang menerima .
Jadi, untuk setiap gerbang-set yang berisi gerbang mirip-implikasi, OPSAT mudah.(1∗0)∗Hxx∈1∗0
G
Negasi proyeksi. Pertimbangkan gerbang dan . Kami menganggap , analisis dengan serupa. Sendiri, dapat menerima string apa pun dalam untuk dengan mengurangi bit terakhir menjadi satu bit, dan kemudian menerapkan ; dan juga dapat menerima untuk dengan mengurangi bit terakhir menjadi satu bit, dan kemudian menerapkan rangkaian¬ π 1 ( x , y ) = ¬ x ¬ π 2 ( x , y ) = ¬ y ¬ π 1 ¬¬π1(x,y)=¬x¬π2(x,y)=¬y¬π1 π 2 ¬ π 1 0 ( 0 | 1 ) n - 1 n ⩾ 2 n - 1 ¬ π 1 1 ( 0 | 1 ) n - 1 n ⩾ 3¬π2¬π10(0|1)n−1n⩾2n−1¬π11(0|1)n−1n⩾3n - 2 ¬ π 1 ( ¬ π 1 ( x 1 , x 2 ) , x 3 ) ¬ π 1 10 11n−2¬π1(¬π1(x1,x2),x3). Satu-satunya input yang tidak dapat diterima sirkuit adalah atau ; menentukan apakah ada gerbang tambahan yang menerimanya sepele. Dengan demikian, OPSAT mudah untuk penolakan proyeksi.¬π11011
PARITY dan EQUALITY . Pertimbangkan gerbang . Gerbang mengatur jelas hanya dapat dipenuhi dengan string dengan angka ganjil 1s; kami mempertimbangkan manfaat menambahkan gerbang lain.PARITY ( x , y ) = ( x ∨ ¬ y ) ∧ ( ¬ x ∨ y ) G = { PARITY } x ∈ { 0 , 1 } nPARITY(x,y)=(x∨¬y)∧(¬x∨y)G={PARITY}x∈{0,1}n
- Gerbang-set yang berisi dan atau
dapat mensimulasikan rangkaian yang berisi
gerbang atau (masing-masing) untuk input tetap, yang merupakan kasus mudah OPSAT .PARITY AND NOR ( x , y ) = ¬ ( x ∨ y ) ATAU NANDPARITYANDNOR(x,y)=¬(x∨y)ORNAND
- Entah atau dapat digunakan untuk mensimulasikan atau pada substring dua-bit paritas genap, sehingga kita dapat mengurangi set gerbang dengan ini gerbang dan ke kasus sebelumnya.π 1 ( x , y ) = x π 2 ( x , y ) = y DAN NOR PARITYπ1(x,y)=xπ2(x,y)=yANDNORPARITY
- PARITY EQUAL = ¬ PARITYPARITY bersama dengan adalah tautologous.EQUAL=¬PARITY
- Jika kami menambah dengan gerbang , kami dapat menerima string paritas genap apa pun kecuali untuk dengan menerapkan ke a -substring dan kemudian menerapkan sirkuit ke yang lain. Demikian pula, bersama dengan dapat menerima string apa pun kecuali string dalam bentuk . Melengkapi dengan dan memungkinkan kami membuat sirkuit yang menerima semua input kecuali danPARITY G 01 = ¬ x ∧ y x ∈ ( 11 ) ∗ 0 ∗ G 01 01 x PARITY PARITYPARITYG01=¬x∧yx∈(11)∗0∗G0101xPARITYPARITY G 10 = x ∧ ¬ y x ∈ 0 ∗ ( 11 ) ∗ PARITY G 01 G 10 x ∈ 0 ∗ x = 11G10=x∧¬yx∈0∗(11)∗PARITYG01G10x∈0∗x=11 .
- Akhirnya, jika kita melengkapi dengan gerbang konstan , kita dapat menerima input apa pun kecuali untuk atau dengan menerapkan gerbang ke substring atau , mengurangi ke kasus paritas ganjil.PARITY Z ( x , y ) = 0 x ∈ ( 11 ) ∗ x ∈ 0 ∗ G 01 10PARITYZ(x,y)=0x∈(11)∗x∈0∗G0110
Dengan demikian, OPSAT mudah untuk semua mengandung . Analisis serupa berlaku untuk gerbang seperti untuk gerbang : karena , sirkuit dari gates pada dasarnya menghitung paritas jumlah dalam input. Kami kemudian dapat mengurangi analisis untuk dengan dengan menukar dan .G PARITY EQUAL PARITY EQUAL (GPARITY
EQUALPARITY x , y ) = ¬ PARITY ( x , y ) = ¬ PARITY ( ¬ x , ¬ y ) EQUAL 0 PARQ EQUAL 0 1EQUAL(x,y)=¬PARITY(x,y)=¬PARITY(¬x,¬y)EQUAL0EQUALPARITY01
Gerbang proyeksi. Gerbang dan , yang diambil sendiri, hanya dapat membangun sirkuit yang menerima string yang dimulai atau diakhiri dengan , masing-masing. Pertimbangkan efek menambah gerbang dengan gerbang lain (analisis serupa berlaku untuk ):π 1 ( x , y ) = x π 2 ( x , y ) = y 1 π 1 π 2π1(x,y)=xπ2(x,y)=y1π1π2
- Mengizinkan dan memungkinkan pembuatan sirkuit "seleksi", yang hanya mengeluarkan bit apa pun dari input; ini dapat menerima , dan menambahkannya dengan gerbang yang mana memungkinkan rangkaian yang puas untuk dibangun untuk apa pun .π 1 π 2 x ≠ 0 n G G ( 0 , 0 ) = 1 xπ1π2x≠0nGG(0,0)=1x
- Jika kami menambahkan dengan atau , kami dapat mensimulasikan atau gerbang mirip-implikasi untuk input tetap; OPSAT diselesaikan untuk kedua kasus ini.π 1 NOR G 01 = ¬ x ∧ y ATAUπ1NORG01=¬x∧yOR
- Jika kita melengkapi dengan , , gerbang konstan , atau kombinasi keduanya, kita tidak mendapatkan daya terima tambahan, sehingga kita masih hanya dapat menerima string yang dimulai dengan .π 1 DAN G 10 = x ∧ ¬ y Z ( x , y ) = 0 1π1ANDG10=x∧¬yZ(x,y)=01
Dengan demikian, untuk gerbang lain yang dapat kami (atau ) dengan, kami memperoleh set tautologous, tidak memperoleh daya penerimaan tambahan hanya atas (atau ), atau dapat mengurangi ke kasus OPSAT yang lebih mudah sebelumnya. . Maka setiap instance OPSAT dengan atau mudah.π 1 π 2 π 1 π 2 π 1 ∈ G π 2 ∈ Gπ1π2π1π2π1∈Gπ2∈G
Gerbang fungsi delta. Pertimbangkan gerbang dua-bit yang hanya ada satu input yang memuaskan mereka: , , , dan . Sirkuit dibuat hanya dengan gerbang hanya dapat menerima string : melengkapi mereka dengan gerbang delta-fungsi lain memungkinkan mereka untuk mensimulasikan baik , , atau , yang kasus diselesaikan; komentar serupa berlaku untuk . Selain itu, set gerbang dapat digunakan untuk juga mensimulasikanDAN NOR G 10 ( x , y ) = x ∧ ¬ y G 01 ( x , y ) = ¬ x ∧ y DAN 1 ∗ SAMA π 1 π 2 NOR { G G 10 1 ( 0 | 1 ) n - 1 11 n - 2 G 10 ( x 1 , G 10ANDNORG10(x,y)=x∧¬yG01(x,y)=¬x∧yAND 01 , G 10 } PARITY G 10 G 01 Z(x,y)=0 G 10 G 01gerbang. Dengan demikian kita dapat fokus pada gerbang atau , mungkin ditambah dengan gerbang . Kami fokus pada , dengan kasus menjadi serupa. Sirkuit yang terbuat dari sendiri dapat dibangun untuk menerima , kecuali untuk string , dengan menerapkan sirkuit arbitrer ke bit terakhir dan kemudian menerapkan sirkuit . Jelas, string tidak dapat diterima oleh atau oleh ; dan kami dapat menunjukkan dengan induksi bahwa
( x 2 , x 3 ) ) 11 G 10 Z G 10 1Z G 10 x∈1(0 | 10 | 11)(0 | 1 ) ∗sirkuit yang menerima string harus memiliki hasil menengah dari gerbang di cabang paling kiri semua menghasilkan , hingga input paling kiri itu sendiri. Tidak ada manfaat tambahan yang diperoleh dengan menambahkan gerbangKarenanya, sirkuit hanya dapat menerima .
Akhirnya, sirkuit yang hanya terdiri dari gerbang tidak menerima input.Z
Karena setiap gerbang menimbulkan kelas didefinisikan dengan baik dan umumnya cukup besar input yang menerima, dengan gerbang tambahan cenderung meremehkan masalah, kita menemukan bahwa 2-POHON-OPSAT dalam P .