Краткий ответ. Операторская версия SAT эффективно разрешима - по крайней мере, если мы примем произвольные схемы двухвходных вентилей без разветвления, при любом желаемом выборе стробирования.
Длинный ответ
Я предполагаю следующую форму логической проблемы:
x∈{0,1}nn⩾2GCG xxxC
В частности, мы не навязываем конкретную структуру схемам (кроме двоичных деревьев), не допускаем разветвления (так что каждый бит используется только один раз), и вентили могут быть асимметричными. Допуская только двухбитные вентили, я исключаю вентиль NOT (но который может быть смоделирован наличием множества вентилей, которые связаны друг с другом отрицаниями, такими как AND / NAND ; также я исключаю вентили, которые просто выводят константы без входов , так что число вентилей в схеме фактически всегда будет для битного входа. Для краткости ниже я буду называть 2-TREE-OPSAT просто OPSATCxn−1n; хотя анализ проблемы может стать намного более сложным для схем, допускающих произвольные k- входные вентили ( k-TREE-OPSAT ) или допускающих разветвление (которое мы могли бы назвать k-FANOUT-OPSAT ).
[ Отредактировано, чтобы добавить : мы можем легко адаптировать это, чтобы рассмотреть более общую проблему текущей ревизии вашего вопроса, в которой мы пытаемся отобразить данный к целевому значению , поменяв ролями и в приведенном ниже анализе; это приводит к смене ролей AND и OR , NAND и NOR и т. д. ]
x∈{0,1}∗b∈{0,1}01
Для фиксированного выбора проблема выбора подходящего дерева с подходящими воротами не отличается от логической дизъюнкции: использование эквивалентностей, таких как
мы можем выполнять сокращения между коллекциями, связывающими более сложные наборы ворот с простыми (и мощными) наборами ворот; a может говорить о том, что один набор гейтов может эмулировать другие вентили, не принадлежащие этому набору, мудро выбирая некоторый элемент который имеет тот же эффект (когда представлен с определенным входом), что и вентиль , В частности, определенные комбинации вентилей (такие как ) могут моделировать постоянную функцию, дающуюx∈{0,1}n
OR(x,y)≡(AND(x,y)∨PARITY(x,y))
GG∉G{OR,NAND}1: мы говорим, что такие наборы ворот
тавтологичны .
Далее мы рассмотрим наборы затворов, включающие в себя различные типы затворов , а затем исключим эти затворы из более поздних случаев анализа, чтобы показать, что наборы затворов, включающие какой-либо один из затворов, приводят к решаемой проблеме. Мы будем исходить в порядке числа двух битовых строк , которые удовлетворяют ворота в вопросе, начиная с постоянной ворот до постоянной ворот.G10
Для любого набора логических элементов который содержит постоянные вентили , мы можем просто построить схему используя только эти вентили, и в этом случае принимает любой .GG(x,y)=1CCx
ИЛИ и НАНД. Для любого набора вентилей который содержит : если все другие вентили удовлетворяют , то нет никакого выбора для выбора других вентилей, кроме в построении схемы . Схема только ворот принимает любую строку кроме . В противном случае существует элемент такой что тавтологичен. Таким образом, любой экземпляр OPSAT с легко; и подобные замечания относятся к .GORG∈GG(x,y)⟹OR(x,y)ORCORx∈0∗G∈G{G,OR}OR∈GNAND∈G
Имплицитные ворота. Рассмотрим вентиль , который выводит ноль только в том случае, если . Для дальнейшего аналогичного анализа будет применяться для ворот .
Рассмотрим любую строку . Если заканчивается на , разложить на подстроки вида ; к каждому такому мы рекурсивно применяем справа налево, что дает вывод для каждого . (Для подстроки длиной 1 мы используем тривиальную схему, т.е. оставляем этот вход в покое.) Аналогично, еслиG(x,y)=¬x∨y(x,y)=(1,0)G′(x,y)=x∨¬y
x∈{0,1}nx0xwj=1∗0wjG0wjx заканчивается на , разлагает на подстроки вида и рекурсивно применяет слева направо к каждому , что дает выход для каждого . Таким образом, мы можем свести задачу к построению цепей, которые удовлетворяются либо на либо на , где - это число подстрок или . Для мы можем согласиться с использованием gates, рекурсивно применяя слева направо. Это просто оставляет дело1xwj=0∗1Gwj1wj0m1mm1∗00∗1m⩾2GGm=1 , для которого проблемным случаем являются входы . При любая схема, состоящая только из элементов, будет давать только более короткие строки вида , что в конечном итоге приведет к однобитовой строке : так что ни одна схема элементов не может быть удовлетворена этот вход. Если есть также ворота для которых , то тавтологично; или, если есть вентиль для которого , мы можем уменьшить строки видаx∈1∗0
x=1∗0G1∗00GH∈GH(1,0)=1{G,H}H∈GH(1,1)=011∗0в строки вида , применяя к первым двум битам . В противном случае не может быть построена схема, которая принимает .
Таким образом, для любого набора гейтов который содержит импликатообразные ворота, OPSAT прост.(1∗0)∗Hxx∈1∗0
G
Отрицания проекций. Рассмотрим ворота и . Мы рассматриваем , анализ с аналогичен. Сам по себе может принять любую строку в для , уменьшив последние бит до одного бита, а затем применив ; и он может аналогичным образом принять для , уменьшив последние бита до одного бита, а затем применив схему¬π1(x,y)=¬x¬π2(x,y)=¬y¬π1¬π2¬π10(0|1)n−1n⩾2n−1¬π11(0|1)n−1n⩾3n−2¬π1(¬π1(x1,x2),x3), Единственные входы, которые не могут принять схемы - это или ; Определение того, принимают ли они какие-либо дополнительные врата, тривиально. Таким образом, ОПСАТ легок для отрицания прогнозов.¬π11011
ПАРИТЕТ и РАВЕНСТВО . Рассмотрим ворота . Очевидно, что множество ворот может быть точно удовлетворено только строками с нечетным числом 1s; мы рассматриваем преимущества добавления любых других ворот.PARITY(x,y)=(x∨¬y)∧(¬x∨y)G={PARITY}x∈{0,1}n
- Любой набор который содержит как и или
может моделировать схемы, которые содержат
вентили или (соответственно) для фиксированных входов, которые Легкие случаи ОПСАТ .PARITYANDNOR(x,y)=¬(x∨y)ORNAND
- Либо либо можно использовать для имитации либо либо на двухбитовых подстроках четной четности, так что мы можем уменьшить наборы шлюзов с помощью этих ворота и к предыдущему случаю.π1(x,y)=xπ2(x,y)=yANDNORPARITY
- PARITY вместе с тавтологичны.EQUAL=¬PARITY
- Если мы к , мы можем принять любую строку четной четности, кроме , применив к -substring из , а затем применяя схему к остальным. Аналогично, вместе с может принимать любую строку, кроме строки вида . Дополнение как и позволяет нам строить схемы, которые принимают все входы, кроме иPARITYG01=¬x∧yx∈(11)∗0∗G0101xPARITYPARITYG10=x∧¬yx∈0∗(11)∗PARITYG01G10x∈0∗x=11 .
- Наконец, если мы константой gate , мы можем принять любой вход, кроме или , применяя gate к подстрока или , сокращающая до нечетного случая четности.PARITYZ(x,y)=0x∈(11)∗x∈0∗G0110
Таким образом, OPSAT легко для любого содержащего . Аналогичный анализ применяется для логического элемента как для логического элемента : потому что , схемы из ворота существенно подсчитывают четность числа сек на входе. Затем мы можем свести анализ для к анализу путем замены и .GPARITY
EQUALPARITYEQUAL(x,y)=¬PARITY(x,y)=¬PARITY(¬x,¬y)EQUAL0EQUALPARITY01
Проекционные ворота. Ворота и , взятые сами по себе, могут создавать только схемы, которые принимают строки, начинающиеся или заканчивающиеся на соответственно. Рассмотрим эффект увеличения шлюза любым другим вентилем (аналогичный анализ выполняется для ):π1(x,y)=xπ2(x,y)=y1π1π2
- Разрешение и и позволяет создать схему "выбора", которая просто выводит любой отдельный бит со входа; они могут принимать любые и дополнять их любым вентилем для которого позволяет построить удовлетворенную схему для любого .π1π2x≠0nGG(0,0)=1x
- Если мы либо либо , мы можем смоделировать либо либо имплицитный логический элемент для фиксированных входов; ОПСАТ решен для обоих этих случаев.π1NORG01=¬x∧yOR
- Если мы дополняем либо , , постоянными вентилями , либо любой их комбинацией, мы не получаем никакой дополнительной принимающей силы, так что мы все еще может принимать только строки, начинающиеся с .π1ANDG10=x∧¬yZ(x,y)=01
Таким образом, для любого другого гейта, который мы можем дополнить (или ), мы получим либо тавтологичный набор, не получим никакой дополнительной принимающей способности по сравнению с (или ), либо можем уменьшить до более раннего простого случая OPSAT , Тогда любой экземпляр OPSAT с или легко.π1π2π1π2π1∈Gπ2∈G
Дельта-функция ворот. Рассмотрим двухбитные вентили, для которых имеется только один вход, удовлетворяющий им: , , и . Схемы, выполненные только с воротами могут принимать только строку : добавление к ним любых других шлюзов дельта-функций позволяет имитировать либо , , либо , что является решаемыми случаями; аналогичные замечания относятся к . Кроме того, набор может также использоваться для имитацииANDNORG10(x,y)=x∧¬yG01(x,y)=¬x∧yAND1∗EQUALπ1π2NOR{G01,G10}PARITYВорота. Таким образом, можно либо сосредоточиться на ворота или , возможно , с добавлением затвора . Мы фокусируемся на , причем случай аналогичен. Схемы, сделанные только из могут быть построены так, чтобы принимать , за исключением строки , путем применения произвольной схемы к последним битам и затем применения схемы . Ясно, что строка не может быть принята или ; и мы можем показать по индукции, что любойG10G01Z(x,y)=0G10G01
G101(0|1)n−111n−2G10(x1,G10(x2,x3))11G10ZG10Схема, которая принимает строку, должна иметь промежуточные результаты от логических элементов в самой левой ветви, дающих , до самого левого входа. Дополнительное преимущество не достигается при добавлении ворот. Следовательно, схемы могут принимать только .1ZG10x∈1(0|10|11)(0|1)∗
Наконец, цепи, состоящие только из вентилей, не принимают входные данные.Z
Поскольку каждый ворота приводит к четко определенному и в целом довольно большому классу входов , которые он принимает, с дополнительными воротами , стремящихся к банальным проблемам, мы находим , что 2-ДЕРЕВО-OPSAT в P .