Чи повна проблема пошуку операторів для задоволення списку булевих змінних NP?


11

Це схоже на SAT, за винятком того, що ми знаємо присвоєння кожної змінної, але не знаємо присвоєння будь-якого булевого оператора. У такому випадку, чи знаходить призначення кожного оператора, щоб вираз оцінював задане булеве значення як NPC?

Власне, мені було цікаво, чи не буде завершення пошуку арифметичних операторів для задоволення цілого арифметичного виразу (наприклад, = 10)?1 1 o p 1op1 3 3 o p 2op2 7 o p 3 o p 47 op3 op4


2
Отже, якщо я правильно зрозумів, ви знаєте, що формула підлягає задоволенню, і ви хочете знати призначення булевих операторів. Просто призначте оператору всі "операторські змінні" і ви закінчите. Я не знаю про другу проблему, але це виглядає цікаво.
Джордж

3
@GeorgeB: Я не вважаю, що рішення є правильним. Що робити, якщо всі булеві значення встановлені на значення false? Це питання цікаве, але може знадобитися трохи попрацювати. Який набір булевих операторів ми обираємо? Імовірно, ви маєте на увазі цікаву підмножину бінарних булевих операторів, таких як . Якщо ви включаєте всіх бінарних булевих операторів, то проблема є тривіальною - просто виберіть постійну карту на "true". { , , }{,,}
Гек Беннетт

1
Як сказав Гек, виберіть для всіх . Однак якщо ви обмежите операторів певним набором, тоді питання буде цікавішим. Аналогічно для арифметичного випадку. x o p i y = 1 xopiy=1ii
Kaveh

це здається, що це може мати певний зв’язок із QBF або можливо зводити до нього. ймовірно, може бути побудований QBF, який при вирішенні дає операторам. правильно? при швидкому огляді виглядає, що це може бути Pspace завершено ... також вам слід визначити пріоритет, якщо немає дужок. І вище АБО? проблема здається більш природною, можливо, коли можна визначити круглі дужки / групування.
vzn

@GeorgeB. Вибачте, що я не зрозуміла. Оцінка булевого виразу може бути будь-яким заданим булевим значенням, або 0, або 1.
DSounders

Відповіді:


10

З додаванням і відніманням, я думаю, що проблема Розбиття , яка є важкою для NP, зводиться до вашої другої проблеми.

Враховуючи множину S = { 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 .

Якщо рішення існує, ми створюємо два набори:

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=}

Ці два набори повинні мати однакову суму при встановленні нашої вихідної проблеми, тому проблема з розділами вирішена. Це показує, що не тільки важко придумати власне рішення цієї проблеми, але насправді НП важко визначити, чи існує рішення (принаймні для додавання та віднімання).

Для набору операцій, що не дозволяє створювати від'ємні цілі числа, скажімо, множення та додавання, це не так однозначно. Крім того, це свідчить лише про те, що проблема недостатньо складна; може бути зменшення, яке дає більш сильний результат, ніж це.


1
Я думаю, що ваші докази можна досить легко адаптувати до випадку × / ÷×/÷ , просто встановіть цільову задачу на s 1s n = 1s1sn=1 . Тоді рішення означає, що знаменник такий самий, як і чисельник (якщо s i > 0si>0 для всіх ii ). Звичайно, це не дає чотирьох випадків оператора, але тоді нам також доведеться керувати порядком операцій.
Люк Матхісон

Дякую, @Sam та Luke. Що робити, якщо ми змішимо всіх чотирьох операторів? Якщо інтуїтивно мати більше операторів, це лише ускладнить проблему, але я не бачу прямого підтвердження.
DSounders

Ще думаю про всіх чотирьох. Ми також можемо отримати + / ÷+/÷ легко, але це все одно лише два.
Люк Матхісон

1
Крім того, посилання на (сильну) N P -комплектність ПРОДУКЦІЇ ПРОДУКЦІЇ: "" Розділ продукту "та пов'язані з цим проблеми планування та надійність систем: Комп'ютерна складність та наближення" sciencedirect.com/science/article/pii/S0377221710003905NP
Люк Матісон

4

Коротка відповідь. Операторська версія SAT ефективно вирішується - принаймні, якщо припустити довільні схеми двовхідних воріт без вентиляторів, над будь-яким потрібним вибором набору воріт.

Довга відповідь. Я припускаю наступну форму булевої проблеми:

2-ДРУГО-ОПСАТ. З огляду на вхід x { 0 , 1 } n для n 2 та набір затворів G, що складається з 2-х вхідних одних вихідних воріт, чи існує схема С, що складається з воріт у G, яка приймає x , тобто яка є задовольняється, коли дається вхід x (відображення бітів x до листя схеми C в порядку)?x{0,1}nn2GСГ хххС

Зокрема, ми не накладаємо особливої ​​структури на схеми С (окрім того, що є двійковими деревами), не допускаємо вентиляції (так що кожен біт x використовується лише один раз), і ворота можуть бути несиметричними. Дозволяючи лише двобітні ворота, я виключаю ворота NOT (але це може бути імітовано наявністю декількох воріт, пов'язаних один з одним запереченнями, такими як AND / NAND ; а також виключаю ворота, які просто виводять константи без входів , так що кількість воріт в ланцюгу насправді завжди буде n - 1. для n- бітового вводу. Для стислості я посилаюсь на 2-TREE-OPSAT нижче просто якСхn - 1нOPSAT ; хоча аналіз проблеми може стати набагато більш важким для схем , що дозволяють довільно K -input воріт ( к-ДЕРЕВО-OPSAT ) або дозволяти віяловій з (який ми могли б назвати к-розгалуження-OPSAT ).

[ Відредаговано, щоб додати : ми можемо легко адаптувати це до розгляду більш загальної проблеми поточної ревізії вашого питання, в якій ми намагаємося відобразити задане x { 0 , 1 } до цільового значення b { 0 , 1 } , змінюючи ролі 0 і 1 в аналізі нижче; це має ефект перестановки ролі AND і OR , NAND і NOR , і т.д. ] x{0,1}b{0,1}01

Для фіксованого вибору x { 0 , 1 } n проблема вибору відповідного дерева з відповідними воротами не є відмінністю від логічної диз'юнкції: використання еквівалентів, таких як OR ( x , y )x{0,1}n( І(х,у)PARITY ( x , y ) ) ми можемо виконувати скорочення між колекціями, що стосуються більш складних наборів воріт до простих (і потужних) наборів воріт; а може говорити про одному наборі воріт можливості емулювати інші воротаякі не належать до набору,допомогою розумно вибрати певний елемент G , який має той же ефект (при поданні з конкретним входом) як ворота G G . Зокрема, певні комбінації воріт (наприклад, { OR , NAND } ) можуть імітувати постійну функцію, що приносить 1 : ми говоримо, що такі набори воріт єтавтологічними.

OR(x,y)(AND(x,y)PARITY(x,y))
GGG{OR,NAND}1

Ми продовжуємо розглядаючи набори воріт, включаючи різні типи воріт G , пізніше виключаючи ці ворота з пізніших випадків аналізу, щоб показати, що набори воріт, що включають будь-який один із воріт, призводять до проблеми, що простежується. Ми продовжимо порядок кількості двобітних рядків, які задовольняють розглянутий хід, починаючи від постійного 1 воріт до постійного 0 воріт.G10

  1. Для будь-якого набору G, який містить постійний затвор G ( x , y ) = 1 , ми можемо просто побудувати ланцюг C, використовуючи лише цей затвор, і в цьому випадку C приймає будь-який x .GG(x,y)=1CCx

  2. АБО і NAND. Для будь-якого набору G, який містить АБО : якщо всі інші ворота G G задовольняють G ( x , y )GORGGАБО ( х , у ) , то не існує будьяких перевагщоб вибрати будь-які інші воротаале АБО в побудові схеми C . Ланцюг тількиворіт АБО приймає будь-яку рядок, крім x 0 . В іншому випадку існує ворота G G такий, що { G , OR } є тавтологічним. Отже, будь-який примірникOPSATз ORG простий; і подібні зауваження застосовні для NANDG .G(x,y)OR(x,y)ORCORx0GG{G,OR}ORGNANDG

  3. Імплікаційні ворота. Розглянемо ворота G ( x , y ) = ¬ x y , який виводить нуль лише, якщо ( x , y ) = ( 1 , 0 ) . З цього випливає аналогічний аналіз для воріт G ( x , y ) = x ¬ y . Розглянемо будь-який рядок x { 0 , 1 } n . Якщо хG(x,y)=¬xy(x,y)=(1,0)G(x,y)=x¬y

    x{0,1}nxзакінчується на 0 , розкласти x на підрядки вигляду w j = 1 0 ; на кожне таке w j рекурсивно застосовуємо G справа наліво, що дає вихід 0 для кожного w j . (Для підрядків довжиною 1 ми використовуємо тривіальну схему, тобто залиште цей вхід в спокої.) Аналогічно, якщо x закінчується на 1 , розкладіть x на підрядки форми w j = 0 1 і рекурсивно застосуйте G зліва на прямо на кожному0xwj=10wjG0wjx1xwj=01Gw j , що дає вихід 1 для кожного w j . Таким чином, ми можемо зменшити проблему до побудови схем, які задовольняються або на 0 м, або на 1 м , де m - кількість підрядків 1 0 або 0 1 . Для m 2 ми можемо прийняти або використовувати G- ворота шляхом рекурсивного застосування G зліва направо. Це просто залишає випадок m = 1 , для якого проблемним випадком є ​​входи x 1wj1wj0m1mm1001m2GGm=1 0 . Для x = 1 0 , будь-яка схема, що складається лише зворіт G, дасть лише короткі рядки форми 1 0 , що в кінцевому підсумку дасть однобітну рядок 0 : так що жоден ланцюгшлюзів G не може бути задоволений цим входом. Якщо єтакожзатвор H G, для якого H ( 1 , 0 ) = 1 , то { G , H } є тавтологічним; або, якщо є ворота Hx10

    x=10G100GHGH(1,0)=1{G,H}G, для якого H ( 1 , 1 ) = 0 , ми можемо звести рядки форми 11 0 до рядків форми ( 1 0 ) , застосувавши H до перших двох біт x . В іншому випадку не може бути побудована схема, яка приймає x 1 0 . Таким чином, для будь-якого набору воріт G, який містить ворота,подібнідо імплікацій,OPSATє простим.HGH(1,1)=0110(10)Hxx10

    G

  4. Заперечення прогнозів. Розглянемо ворота ¬ π 1 ( x , y ) = ¬ x і ¬ π 2 ( x , y ) = ¬ y . Ми вважаємо , ¬ π 1 , аналіз з ¬ π 2 подібний до. Сама по собі ¬ π 1 може прийняти будь-який рядок у 0 ( 0 | 1 ) n - 1 для n 2¬π1(x,y)=¬x¬π2(x,y)=¬y¬π1¬π2¬π10(0|1)n1n2шляхом зменшення кінцевого n - 1 біта до одного біта, а потім застосування ¬ π 1 ; і він може аналогічно прийняти 1 ( 0 | 1 ) n - 1 для n 3 , зменшивши кінцевий n - 2 біт до одного біта, а потім застосувати схему ¬ π 1 ( ¬ π 1 ( x 1 , x 2 ) , х 3 ) . Єдині входи, що ¬n1¬π11(0|1)n1n3n2¬π1(¬π1(x1,x2),x3)π 1 ланцюга, який не можна прийняти, становлять 10 або 11 ; Визначення того, чи приймає якісь додаткові ворота тривіальне. Таким чином,OPSATлегкозаперечуєпрогнози.¬π11011

  5. ПАРИТІСТЬ та РІВНІСТЬ . Розглянемо ворота PARITY ( x , y ) = ( x ¬ y ) ( ¬ x y ) . Набір затворів G = { PARITY }, очевидно, може бути задоволений лише точно рядками x { 0 , 1 } n з непарним числом 1s; ми вважаємо користь додавання будь-яких інших воріт.PARITY(x,y)=(x¬y)(¬xy)G={PARITY}x{0,1}n

    • Будь-який набір воріт, який містить і PARITY, і AND, або NOR ( x , y ) = ¬ ( x y ), може імітувати схеми, які містять ворота OR або NAND (відповідно) для фіксованих входів, що є простими випадками OPSAT .PARITYANDNOR(x,y)=¬(xy)ORNAND
    • Either π1(x,y)=xπ1(x,y)=x or π2(x,y)=yπ2(x,y)=y can be used to simulate either ANDAND or NORNOR on two-bit substrings of even parity, so that we may reduce gate-sets with these gates and PARITYPARITY to the preceding case.
    • PARITYPARITY together with EQUAL=¬PARITYEQUAL=¬PARITY is tautologous.
    • If we supplement PARITYPARITY with the gate G01=¬xyG01=¬xy, we can accept any even-parity string except for x(11)0x(11)0 by applying G01G01 to a 0101-substring of xx and then applying a PARITYPARITY circuit to the rest. Similarly, PARITYPARITY together with G10=x¬yG10=x¬y can accept any string except those of the form x0(11)x0(11). Supplementing PARITYPARITY with both G01G01 and G10G10 allow us to build circuits which accept all inputs except x0x0 and x=11x=11.
    • Finally, if we supplement PARITYPARITY with the constant gate Z(x,y)=0, we can accept any input except for x(11) or x0 by applying a G gate to a substring 01 or 10, reducing to the odd parity case.

    Thus, OPSAT is easy for any G containing PARITY.

    A similar analysis applies for the EQUAL gate as for the PARITY gate: because EQUAL(x,y)=¬PARITY(x,y)=¬PARITY(¬x,¬y), circuits of EQUAL gates essentially count the parity of the number of 0s in the input. We may then reduce the analysis for EQUAL to that of PARITY by exchanging 0 and 1.

  6. Projection gates. The gates π1(x,y)=x and π2(x,y)=y, taken on their own, can only build circuits which accept strings starting or ending in 1, respectively. Consider the effect of augmenting the gate π1 with any other gate (a similar analysis holds for π2):

    • Allowing both π1 and π2 allows the construction of a "selection" circuit, which simply outputs any single bit from the input; these can accept any x0n, and supplementing them with any gate G for which G(0,0)=1 allows a satisfied circuit to be built for any x.
    • If we supplement π1 with either NOR or G01=¬xy, we may simulate either OR or an implication-like gate for fixed inputs; OPSAT is solved for both of these cases.
    • If we supplement π1 with either AND, G10=x¬y, the constant gate Z(x,y)=0, or any combination of them, we get no additional accepting power, so that we still can only accept strings starting with 1.

    Thus, for any other gate we may supplement π1 (or π2) with, we obtain either a tautologous set, obtain no additional accepting power over just π1 (or π2), or may reduce to an earlier easy case of OPSAT. Then any instance of OPSAT with π1G or π2G is easy.

  7. Delta-function gates. Consider the two-bit gates for which there is only one input which satisfies them: AND, NOR, G10(x,y)=x¬y, and G01(x,y)=¬xy. Circuits made only with AND gates can only accept the string 1: supplementing them with any other delta-function gate allows them to simulate either EQUAL, π1, or π2, which are solved cases; similar remarks apply to NOR. As well, the gate-set {G01,G10} can be used to also simulate the PARITY gate. We may thus focus on either the gate G10 or G01, possibly supplemented with the gate Z(x,y)=0. We focus on G10, with the case of G01 being similar.

    Circuits made of G10 alone can be built to accept 1(0|1)n1, except for the string 11, by applying an arbitrary circuit to the final n2 bits and then applying the circuit G10(x1,G10(x2,x3)). Clearly, the string 11 can't be accepted by G10 or by Z; and we can show by induction that any G10 circuit which accepts a string must have intermediate outcomes of the gates in the left-most branch all yielding 1, up to the left-most input itself. No additional benefit is obtained by adding Z gates. Therefore, G10 circuits can only accept x1(0|10|11)(0|1).

  8. Finally, circuits composed only of Z gates accept no inputs.

As each gate gives rise to a well-defined and generally quite large class of inputs which it accepts, with additional gates tending to trivialize the problem, we find that 2-TREE-OPSAT is in P.


1
@DSounders: with respect to your recent revision of the problem to determine if there is a circuit C which maps x to some target value b{0,1}, rather than just the special case b=1, the same analysis as in my present answer still suffices to show that the problem is in P; only the roles of the gates change. For instance, in interchanging the desired outcomes 0 and 1, we effectively interchange the roles of AND and OR, NAND and NOR, the implication-like gates with the other delta-functions, etc.
Niel de Beaudrap
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.