Коротка відповідь. Операторська версія SAT ефективно вирішується - принаймні, якщо припустити довільні схеми двовхідних воріт без вентиляторів, над будь-яким потрібним вибором набору воріт.
Довга відповідь.
Я припускаю наступну форму булевої проблеми:
2-ДРУГО-ОПСАТ. З огляду на вхід x ∈ { 0 , 1 } n для n ⩾ 2 та набір затворів G, що складається з 2-х вхідних одних вихідних воріт, чи існує схема С, що складається з воріт у G, яка приймає x , тобто яка є задовольняється, коли дається вхід x (відображення бітів x до листя схеми C в порядку)?x∈{0,1}nn⩾2GСГ хххС
Зокрема, ми не накладаємо особливої структури на схеми С (окрім того, що є двійковими деревами), не допускаємо вентиляції (так що кожен біт 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))
GG∉G{OR,NAND}1
Ми продовжуємо розглядаючи набори воріт, включаючи різні типи воріт G , пізніше виключаючи ці ворота з пізніших випадків аналізу, щоб показати, що набори воріт, що включають будь-який один із воріт, призводять до проблеми, що простежується. Ми продовжимо порядок кількості двобітних рядків, які задовольняють розглянутий хід, починаючи від постійного 1 воріт до постійного 0 воріт.G10
Для будь-якого набору G, який містить постійний затвор G ( x , y ) = 1 , ми можемо просто побудувати ланцюг C, використовуючи лише цей затвор, і в цьому випадку C приймає будь-який x .GG(x,y)=1CCx
АБО і NAND. Для будь-якого набору G, який містить АБО : якщо всі інші ворота G ∈ G задовольняють G ( x , y )GORG∈G⟹АБО ( х , у ) , то не існує будьяких перевагщоб вибрати будь-які інші воротаале АБО в побудові схеми C . Ланцюг тількиворіт АБО приймає будь-яку рядок, крім x ∈ 0 ∗ . В іншому випадку існує ворота G ∈ G такий, що { G , OR } є тавтологічним. Отже, будь-який примірникOPSATз OR ∈ G простий; і подібні зауваження застосовні для NAND ∈ G .G(x,y)⟹OR(x,y)ORCORx∈0∗G∈G{G,OR}OR∈GNAND∈G
Імплікаційні ворота. Розглянемо ворота G ( x , y ) = ¬ x ∨ y , який виводить нуль лише, якщо ( x , y ) = ( 1 , 0 ) . З цього випливає аналогічний аналіз для воріт G ′ ( x , y ) = x ∨ ¬ y .
Розглянемо будь-який рядок x ∈ { 0 , 1 } n . Якщо хG(x,y)=¬x∨y(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=1∗0wjG0wjx1xwj=0∗1Gw j , що дає вихід 1 для кожного w j . Таким чином, ми можемо зменшити проблему до побудови схем, які задовольняються або на 0 м, або на 1 м , де m - кількість підрядків 1 ∗ 0 або 0 ∗ 1 . Для m ⩾ 2 ми можемо прийняти або використовувати G- ворота шляхом рекурсивного застосування G зліва направо. Це просто залишає випадок m = 1 , для якого проблемним випадком є входи x ∈ 1wj1wj0m1mm1∗00∗1m⩾2GGm=1∗ 0 . Для x = 1 ∗ 0 , будь-яка схема, що складається лише зворіт G, дасть лише короткі рядки форми 1 ∗ 0 , що в кінцевому підсумку дасть однобітну рядок 0 : так що жоден ланцюгшлюзів G не може бути задоволений цим входом. Якщо єтакожзатвор H ∈ G, для якого H ( 1 , 0 ) = 1 , то { G , H } є тавтологічним; або, якщо є ворота Hx∈1∗0
x=1∗0G1∗00GH∈GH(1,0)=1{G,H}∈ G, для якого H ( 1 , 1 ) = 0 , ми можемо звести рядки форми 11 ∗ 0 до рядків форми ( 1 ∗ 0 ) ∗ , застосувавши H до перших двох біт x . В іншому випадку не може бути побудована схема, яка приймає x ∈ 1 ∗ 0 .
Таким чином, для будь-якого набору воріт G, який містить ворота,подібнідо імплікацій,OPSATє простим.H∈GH(1,1)=011∗0(1∗0)∗Hxx∈1∗0
G
Заперечення прогнозів. Розглянемо ворота ¬ π 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)n−1n⩾2шляхом зменшення кінцевого n - 1 біта до одного біта, а потім застосування ¬ π 1 ; і він може аналогічно прийняти 1 ( 0 | 1 ) n - 1 для n ⩾ 3 , зменшивши кінцевий n - 2 біт до одного біта, а потім застосувати схему ¬ π 1 ( ¬ π 1 ( x 1 , x 2 ) , х 3 ) . Єдині входи, що ¬n−1¬π11(0|1)n−1n⩾3n−2¬π1(¬π1(x1,x2),x3)π 1 ланцюга, який не можна прийняти, становлять 10 або 11 ; Визначення того, чи приймає якісь додаткові ворота тривіальне. Таким чином,OPSATлегкозаперечуєпрогнози.¬π11011
ПАРИТІСТЬ та РІВНІСТЬ . Розглянемо ворота PARITY ( x , y ) = ( x ∨ ¬ y ) ∧ ( ¬ x ∨ y ) . Набір затворів G = { PARITY }, очевидно, може бути задоволений лише точно рядками x ∈ { 0 , 1 } n з непарним числом 1s; ми вважаємо користь додавання будь-яких інших воріт.PARITY(x,y)=(x∨¬y)∧(¬x∨y)G={PARITY}x∈{0,1}n
- Будь-який набір воріт, який містить і PARITY, і AND, або
NOR ( x , y ) = ¬ ( x ∨ y ), може імітувати схеми, які містять
ворота OR або NAND (відповідно) для фіксованих входів, що є простими випадками OPSAT .PARITYANDNOR(x,y)=¬(x∨y)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=¬x∧yG01=¬x∧y, we can accept any even-parity string except for x∈(11)∗0∗x∈(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 x∈0∗(11)∗x∈0∗(11)∗. Supplementing PARITYPARITY with both G01G01 and G10G10 allow us to build circuits which accept all inputs except x∈0∗x∈0∗ 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 x∈0∗ 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.
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 x≠0n, 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=¬x∧y, 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 π1∈G or π2∈G is easy.
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)=¬x∧y. 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)n−1, except for the string 11, by applying an arbitrary circuit to the final n−2 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 x∈1(0|10|11)(0|1)∗.
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.