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

11

Это похоже на SAT, за исключением того, что мы знаем назначение каждой переменной, но не знаем назначения какого-либо логического оператора. В таком случае, является ли поиск присваивания каждого оператора таким образом, чтобы выражение оценило данное логическое значение как проблему NPC?

На самом деле, мне было интересно, если поиск назначения арифметических операторов для удовлетворения целочисленного арифметического выражения (например, 1 op1 3 op2 7 op3 op4 = 10) является NP завершенным?

DSounders
источник
2
Итак, если я правильно понял, вы знаете, что формула выполнима, и вы хотите знать назначение булевых операторов. Просто назначьте оператор для всех «операторов переменных» , и вы сделали. Я не знаю насчет второй проблемы, но она выглядит интересно.
Джордж
3
@ Джордж Б. Я не думаю, что это правильное решение. Что если все логические значения установлены в false? Этот вопрос интересен, но, возможно, потребуется немного поработать. Какой набор булевых операторов мы выбираем? Предположительно, вы имеете в виду интересное подмножество бинарных булевых операторов, таких как {,,} . Если вы включите все двоичные булевы операторы, то проблема тривиальна - просто выберите постоянную карту в значение «истина».
Гек Беннетт
1
Как сказал Гек, выбери для всех i . Однако, если вы ограничите операторы определенным набором, тогда вопрос будет более интересным. Аналогично для арифметического случая. xopiy=1i
Каве
похоже, что он может иметь какую-то связь с QBF или, возможно, сводиться к нему. вероятно, QBF может быть построен, что, когда решено, дает операторов. верно? при быстрой проверке похоже, что это может быть завершено Pspace ... также вы должны определить приоритет, если нет скобок. И выше, чем ИЛИ? проблема кажется более естественной, возможно, когда можно определить круглые скобки / группировки.
ВЗН
@GeorgeB. Извините, я не дал понять.
Оценкой

Ответы:

10

Я думаю , что с сложением и вычитанием проблема с разделами , которая является NP-сложной, сводится к вашей второй проблеме.

Учитывая множество мы создаем задачуS={s1,s2,,sn}

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

Если решение существует, мы создаем два набора:

S1={s1}{si|opi1=+}

S2={si|opi1=}

Эти два набора должны иметь одинаковую сумму при установке нашей исходной задачи, поэтому проблема разбиения решена. Это показывает, что не только сложно найти реальное решение этой проблемы, но и на самом деле трудно определить, существует ли решение (по крайней мере, для сложения и вычитания).

Для набора операций, который не позволяет создавать отрицательные целые числа, например, умножение и сложение, это не так ясно. Кроме того, это только показывает, что проблема слабо NP-трудна; может быть сокращение, которое дает более сильный результат, чем этот.

Samm
источник
1
Я думаю, что ваше доказательство может быть легко адаптировано к случаю , просто установите целевую задачу на s 1s n = 1 . Тогда из решения следует, что знаменатель совпадает с числителем (при условии, что s i > 0 для всех i ). Конечно, это не дает случая с четырьмя операторами, но тогда нам также придется обрабатывать порядок операций. ×/÷s1sn=1si>0i
Люк Мэтисон
Спасибо, @Sam и Люк. Что если мы смешаем все четыре оператора? Интуитивно понятное наличие большего количества операторов только усложнит задачу, но я не вижу прямого доказательства.
DSounders
Все еще думаю обо всех четырех. Мы также можем легко получить , но это все еще только два за раз. +/÷
Люк Мэтисон
1
Кроме того, ссылка на (сильную) -полноту РАЗДЕЛА ПРОДУКТА: «« Разделение продукта »и связанные с этим проблемы планирования и надежности систем: сложность вычислений и приближение» sciencedirect.com/science/article/pii/S0377221710003905NP
Люк Мэтисон
4

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

Длинный ответ Я предполагаю следующую форму логической проблемы:

x{0,1}nn2GCG xxxC

В частности, мы не навязываем конкретную структуру схемам (кроме двоичных деревьев), не допускаем разветвления (так что каждый бит используется только один раз), и вентили могут быть асимметричными. Допуская только двухбитные вентили, я исключаю вентиль NOT (но который может быть смоделирован наличием множества вентилей, которые связаны друг с другом отрицаниями, такими как AND / NAND ; также я исключаю вентили, которые просто выводят константы без входов , так что число вентилей в схеме фактически всегда будет для битного входа. Для краткости ниже я буду называть 2-TREE-OPSAT просто OPSATCxn1n; хотя анализ проблемы может стать намного более сложным для схем, допускающих произвольные 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))
GGG{OR,NAND}1: мы говорим, что такие наборы ворот тавтологичны .

Далее мы рассмотрим наборы затворов, включающие в себя различные типы затворов , а затем исключим эти затворы из более поздних случаев анализа, чтобы показать, что наборы затворов, включающие какой-либо один из затворов, приводят к решаемой проблеме. Мы будем исходить в порядке числа двух битовых строк , которые удовлетворяют ворота в вопросе, начиная с постоянной ворот до постоянной ворот.G10

  1. Для любого набора логических элементов который содержит постоянные вентили , мы можем просто построить схему используя только эти вентили, и в этом случае принимает любой .GG(x,y)=1CCx

  2. ИЛИ и НАНД. Для любого набора вентилей который содержит : если все другие вентили удовлетворяют , то нет никакого выбора для выбора других вентилей, кроме в построении схемы . Схема только ворот принимает любую строку кроме . В противном случае существует элемент такой что тавтологичен. Таким образом, любой экземпляр OPSAT с легко; и подобные замечания относятся к .GORGGG(x,y)OR(x,y)ORCORx0GG{G,OR}ORGNANDG

  3. Имплицитные ворота. Рассмотрим вентиль , который выводит ноль только в том случае, если . Для дальнейшего аналогичного анализа будет применяться для ворот . Рассмотрим любую строку . Если заканчивается на , разложить на подстроки вида ; к каждому такому мы рекурсивно применяем справа налево, что дает вывод для каждого . (Для подстроки длиной 1 мы используем тривиальную схему, т.е. оставляем этот вход в покое.) Аналогично, еслиG(x,y)=¬xy(x,y)=(1,0)G(x,y)=x¬y

    x{0,1}nx0xwj=10wjG0wjx заканчивается на , разлагает на подстроки вида и рекурсивно применяет слева направо к каждому , что дает выход для каждого . Таким образом, мы можем свести задачу к построению цепей, которые удовлетворяются либо на либо на , где - это число подстрок или . Для мы можем согласиться с использованием gates, рекурсивно применяя слева направо. Это просто оставляет дело1xwj=01Gwj1wj0m1mm1001m2GGm=1 , для которого проблемным случаем являются входы . При любая схема, состоящая только из элементов, будет давать только более короткие строки вида , что в конечном итоге приведет к однобитовой строке : так что ни одна схема элементов не может быть удовлетворена этот вход. Если есть также ворота для которых , то тавтологично; или, если есть вентиль для которого , мы можем уменьшить строки видаx10

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

    G

  4. Отрицания проекций. Рассмотрим ворота и . Мы рассматриваем , анализ с аналогичен. Сам по себе может принять любую строку в для , уменьшив последние бит до одного бита, а затем применив ; и он может аналогичным образом принять для , уменьшив последние бита до одного бита, а затем применив схему¬π1(x,y)=¬x¬π2(x,y)=¬y¬π1¬π2¬π10(0|1)n1n2n1¬π11(0|1)n1n3n2¬π1(¬π1(x1,x2),x3), Единственные входы, которые не могут принять схемы - это или ; Определение того, принимают ли они какие-либо дополнительные врата, тривиально. Таким образом, ОПСАТ легок для отрицания прогнозов.¬π11011

  5. ПАРИТЕТ и РАВЕНСТВО . Рассмотрим ворота . Очевидно, что множество ворот может быть точно удовлетворено только строками с нечетным числом 1s; мы рассматриваем преимущества добавления любых других ворот.PARITY(x,y)=(x¬y)(¬xy)G={PARITY}x{0,1}n

    • Любой набор который содержит как и или может моделировать схемы, которые содержат вентили или (соответственно) для фиксированных входов, которые Легкие случаи ОПСАТ .PARITYANDNOR(x,y)=¬(xy)ORNAND
    • Либо либо можно использовать для имитации либо либо на двухбитовых подстроках четной четности, так что мы можем уменьшить наборы шлюзов с помощью этих ворота и к предыдущему случаю.π1(x,y)=xπ2(x,y)=yANDNORPARITY
    • PARITY вместе с тавтологичны.EQUAL=¬PARITY
    • Если мы к , мы можем принять любую строку четной четности, кроме , применив к -substring из , а затем применяя схему к остальным. Аналогично, вместе с может принимать любую строку, кроме строки вида . Дополнение как и позволяет нам строить схемы, которые принимают все входы, кроме иPARITYG01=¬xyx(11)0G0101xPARITYPARITYG10=x¬yx0(11)PARITYG01G10x0x=11 .
    • Наконец, если мы константой gate , мы можем принять любой вход, кроме или , применяя gate к подстрока или , сокращающая до нечетного случая четности.PARITYZ(x,y)=0x(11)x0G0110

    Таким образом, OPSAT легко для любого содержащего . Аналогичный анализ применяется для логического элемента как для логического элемента : потому что , схемы из ворота существенно подсчитывают четность числа сек на входе. Затем мы можем свести анализ для к анализу путем замены и .GPARITY

    EQUALPARITYEQUAL(x,y)=¬PARITY(x,y)=¬PARITY(¬x,¬y)EQUAL0EQUALPARITY01

  6. Проекционные ворота. Ворота и , взятые сами по себе, могут создавать только схемы, которые принимают строки, начинающиеся или заканчивающиеся на соответственно. Рассмотрим эффект увеличения шлюза любым другим вентилем (аналогичный анализ выполняется для ):π1(x,y)=xπ2(x,y)=y1π1π2

    • Разрешение и и позволяет создать схему "выбора", которая просто выводит любой отдельный бит со входа; они могут принимать любые и дополнять их любым вентилем для которого позволяет построить удовлетворенную схему для любого .π1π2x0nGG(0,0)=1x
    • Если мы либо либо , мы можем смоделировать либо либо имплицитный логический элемент для фиксированных входов; ОПСАТ решен для обоих этих случаев.π1NORG01=¬xyOR
    • Если мы дополняем либо , , постоянными вентилями , либо любой их комбинацией, мы не получаем никакой дополнительной принимающей силы, так что мы все еще может принимать только строки, начинающиеся с .π1ANDG10=x¬yZ(x,y)=01

    Таким образом, для любого другого гейта, который мы можем дополнить (или ), мы получим либо тавтологичный набор, не получим никакой дополнительной принимающей способности по сравнению с (или ), либо можем уменьшить до более раннего простого случая OPSAT , Тогда любой экземпляр OPSAT с или легко.π1π2π1π2π1Gπ2G

  7. Дельта-функция ворот. Рассмотрим двухбитные вентили, для которых имеется только один вход, удовлетворяющий им: , , и . Схемы, выполненные только с воротами могут принимать только строку : добавление к ним любых других шлюзов дельта-функций позволяет имитировать либо , , либо , что является решаемыми случаями; аналогичные замечания относятся к . Кроме того, набор может также использоваться для имитацииANDNORG10(x,y)=x¬yG01(x,y)=¬xyAND1EQUALπ1π2NOR{G01,G10}PARITYВорота. Таким образом, можно либо сосредоточиться на ворота или , возможно , с добавлением затвора . Мы фокусируемся на , причем случай аналогичен. Схемы, сделанные только из могут быть построены так, чтобы принимать , за исключением строки , путем применения произвольной схемы к последним битам и затем применения схемы . Ясно, что строка не может быть принята или ; и мы можем показать по индукции, что любойG10G01Z(x,y)=0G10G01

    G101(0|1)n111n2G10(x1,G10(x2,x3))11G10ZG10Схема, которая принимает строку, должна иметь промежуточные результаты от логических элементов в самой левой ветви, дающих , до самого левого входа. Дополнительное преимущество не достигается при добавлении ворот. Следовательно, схемы могут принимать только .1ZG10x1(0|10|11)(0|1)

  8. Наконец, цепи, состоящие только из вентилей, не принимают входные данные.Z

Поскольку каждый ворота приводит к четко определенному и в целом довольно большому классу входов , которые он принимает, с дополнительными воротами , стремящихся к банальным проблемам, мы находим , что 2-ДЕРЕВО-OPSAT в P .

Ниль де Бодрап
источник
1
@DSounders: относительно вашего недавнего пересмотра задачи, чтобы определить, существует ли схема которая отображает на некоторое целевое значение , а не только на особый случай , то же самое анализа, как в моем настоящем ответе, все еще достаточно, чтобы показать, что проблема в P ; меняются только роли ворот. Например, при обмене желаемыми результатами и мы эффективно обмениваем роли AND и OR , NAND и NOR , имплицитно-подобные логические элементы с другими дельта-функциями и т. Д.Cx b{0,1}b=101
Ниль де Бодрап,