Apakah masalah menemukan operator untuk memenuhi daftar NP variabel boolean selesai?


11

Ini mirip dengan SAT, kecuali bahwa kita tahu penugasan masing-masing variabel, tetapi tidak tahu penugasan operator boolean apa pun. Dalam hal itu, apakah menemukan penugasan masing-masing operator sehingga ekspresi mengevaluasi nilai boolean yang diberikan masalah NPC?

Sebenarnya, saya bertanya-tanya apakah menemukan penugasan operator aritmatika untuk memenuhi ekspresi aritmatika integer (misalnya, = 10) apakah NP selesai?1 1 o p 1op1 3 3 o p 2op2 7 7 o p 3op3 o p 4op4


2
Jadi, jika saya mengerti dengan benar, Anda tahu bahwa rumusnya memuaskan dan Anda ingin mengetahui tugas dari operator boolean. Cukup tetapkan operator ke semua "variabel operator" dan Anda selesai. Saya tidak tahu tentang masalah kedua, tetapi terlihat menarik.
George

3
@ GeorgeB: Saya tidak berpikir solusi itu benar. Bagaimana jika semua nilai Boolean disetel ke false? Pertanyaan ini menarik, tetapi mungkin perlu sedikit usaha. Dari operator Boolean apa kita memilih? Agaknya maksud Anda subset menarik dari operator Boolean biner seperti . Jika Anda menyertakan semua operator Boolean biner, maka masalahnya adalah sepele - cukup pilih peta konstan menjadi 'true'. { , , }{,,}
Huck Bennett

1
Seperti yang dikatakan Huck, pilih untuk semua . Namun, jika Anda membatasi operator untuk set tertentu maka pertanyaannya akan lebih menarik. Demikian pula untuk kasus aritmatika. x o p i y = 1 xopiy=1ii
Kaveh

ini sepertinya memiliki beberapa koneksi ke QBF atau mungkin dikurangi. mungkin QBF dapat dibangun bahwa ketika diselesaikan, memberikan operator. Baik? pada pemeriksaan cepat sepertinya Pspace selesai ... juga Anda harus menentukan prioritas jika tidak ada tanda kurung. DAN lebih tinggi dari ATAU? masalahnya tampak lebih alami mungkin ketika tanda kurung / pengelompokan dapat didefinisikan.
vzn

@GeorgeB. Maaf saya tidak menjelaskannya. Evaluasi ekspresi boolean dapat berupa nilai boolean apa pun, baik 0 atau 1.
DSounders

Jawaban:


10

Dengan penambahan dan pengurangan, saya pikir masalah Partisi , yang NP-hard, mengurangi masalah kedua Anda.

Diberikan set kita menciptakan masalahS = { s 1 , s 2 , ... , s n }S={s1,s2,,sn}

s 1s1 o p 1 op1 s 2s2 o p 2 op2 s 3s3 o p 3op3 o p n - 1opn1 s n = 0sn=0 .

Jika ada solusi, kami membuat dua set:

S 1 = { s 1 } { s i | o p i - 1 = + }S1={s1}{si|opi1=+}

S 2 = { s i | o p i - 1 = - }S2={si|opi1=}

Dua set ini harus memiliki jumlah yang sama dengan pengaturan masalah asli kita, sehingga masalah partisi terpecahkan. Ini menunjukkan bahwa tidak hanya menghasilkan solusi aktual untuk masalah ini dengan keras, pada kenyataannya NP sulit untuk menentukan apakah ada solusi (setidaknya untuk penambahan dan pengurangan).

Untuk serangkaian operasi yang tidak memungkinkan pembuatan bilangan bulat negatif, katakanlah perkalian dan penambahan, itu tidak begitu jelas. Juga, ini hanya menunjukkan bahwa masalahnya adalah NP-hard lemah; mungkin ada pengurangan yang memberikan hasil lebih kuat dari ini.


1
Saya pikir bukti Anda dapat disesuaikan dengan case dengan cukup mudah, cukup atur masalah target ke . Kemudian solusi menyiratkan penyebut sama dengan pembilang (dengan asumsi untuk semua ). Tentu saja ini tidak memberikan empat operator kasus, tetapi kemudian kami juga harus menangani urutan operasi. × / ÷ s 1s n = 1 s i > 0 i×/÷s1sn=1si>0i
Luke Mathieson

Terima kasih, @Sam dan Luke. Bagaimana jika kita menggabungkan keempat operator? Secara intuitif memiliki lebih banyak operator hanya akan membuat masalah lebih rumit, tetapi saya tidak melihat bukti yang jelas.
DSounders

Masih memikirkan keempatnya. Kita juga bisa mendapatkan dengan mudah, tapi itu masih hanya dua sekaligus. + / ÷+/÷
Luke Mathieson

1
Juga, referensi untuk (kuat) N P- kelengkapan PARTISI PRODUK: "" Partisi Produk "dan masalah terkait penjadwalan dan keandalan sistem: Kompleksitas komputasi dan perkiraan" sciencedirect.com/science/article/pii/S0377221710003905NP
Luke Mathieson

4

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 Cn2GCG 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 nCxn1n; 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))
GGG{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

  1. 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

  2. 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 )GORGGATAU ( x , y ) ATAU C ATAU x 0 G G { G , OR } ATAUG NANDGG(x,y)OR(x,y)ORCORx0GG{G,OR}ORGNANDG

  3. 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)=¬xy(x,y)=(1,0)G(x,y)=x¬y

    x{0,1}nx0xwj=10wjG0wjx 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=01Gwj1wj0m1mm1001m2GGm=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 bentukx10

    x=10G100GHGH(1,0)=1} H G H ( 1 , 1 ) = 0 11 0 ( 1 0 ) H x x 1 0 G{G,H}HGH(1,1)=0110ke 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.(10)Hxx10

    G

  4. 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)n1n2n1¬π11(0|1)n1n3n - 2 ¬ π 1 ( ¬ π 1 ( x 1 , x 2 ) , x 3 ) ¬ π 1 10 11n2¬π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

  5. 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)(¬xy)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)=¬(xy)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=¬xyx(11)0G0101xPARITYPARITY G 10 = x ¬ y x 0 ( 11 ) PARITY G 01 G 10 x 0 x = 11G10=x¬yx0(11)PARITYG01G10x0x=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)x0G0110

    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

  6. 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π2x0nGG(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=¬xyOR
    • 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 π 1G π 2Gπ1π2π1π2π1Gπ2G

  7. 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)=¬xyAND 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 x1(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 .

  8. 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 .


1
@DSounders: berkenaan dengan revisi masalah Anda baru-baru ini untuk menentukan apakah ada sirkuit yang memetakan ke beberapa nilai target , daripada hanya kasus khusus , sama analisis seperti pada jawaban saya saat ini masih cukup untuk menunjukkan bahwa masalahnya ada di P ; hanya peran gerbang yang berubah. Misalnya, dalam menukar hasil yang diinginkan dan , kami secara efektif menukar peran AND dan OR , NAND dan NOR , implikasi seperti gerbang dengan fungsi delta lainnya, dll.C x b { 0 , 1 } b = 1 0 1
Niel de Beaudrap
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.