Какова сложность Median-SAT?

14

Пусть - формула CNF с n переменными и m предложениями. Пусть t { 0 , 1 } n представляет присваивание переменной, а f φ ( t ) { 0 , , m } подсчитывает количество предложений, удовлетворяемых присваиванием переменной φ . Затем определите Median-SAT как задачу вычисления медианного значения f φ ( t ) по всем t { 0 , 1φnmt{0,1}nfφ(t){0,,m}φfφ(t) . Например, если φt{0,1}nφ является тавтологией, то решение Median-SAT будет равно поскольку независимо от назначения каждое условие будет выполнено. Однако в случае ¯ S A T решение Median-SAT может быть где -то между 0 и т - 1 .mSAT¯0m1

Этот вопрос возник, когда я размышлял над двумя естественными расширениями SAT, MAX-SAT и #SAT, и какова будет сложность возникшей проблемы, если их объединить. Для MAX-SAT мы должны найти конкретное присвоение переменной, чтобы максимизировать число переменных, удовлетворяемых . Для #SAT мы должны посчитать, сколько заданий удовлетворяют всемφ предложениям φ . Этот вариант сводится в основном как расширение #SAT (и фактически#WSAT), но сохраняет некоторуюразновидностьMAX-SAT в том, что мы подсчитываем количество удовлетворенных предложений, а не просто решаем, все ли они удовлетворены или не.mφ

Эта проблема кажется сложнее, чем #SAT или #WSAT. Для каждого присваивания переменной #SAT решает булеву задачу о том, удовлетворяет ли это присваивание или нет, тогда как Median-SAT определяет, «в какой степени»удовлетворяется φ с точки зрения количества предложений, которым удовлетворяет присвоение.φφ

Я понимаю, что эта проблема несколько произвольна; вычисление среднего или модового числа предложений, удовлетворяемых каждым присвоением переменной, похоже, отражает то же качество. Вероятно, многие другие проблемы тоже.

Была ли эта проблема изучена, возможно, под другим видом? Насколько это сложно по сравнению с #SAT? Мне априори не ясно, что Median-SAT даже содержится в FPSPACE, хотя кажется, что он содержится в FEXPTIME.

Гек Беннетт
источник
3
Это в : для каждого k m мы можем подсчитать количество назначений, удовлетворяющих по крайней мере k предложениям, используя оракула #P. FP#PFPSPACEkmk
Колин МакКийан,
1
@Colin сделать это в ответ?
Суреш Венкат
Да, это было бы хорошим ответом. Не могли бы вы рассказать, как запросить оракула #P, чтобы проверить, удовлетворяются ли предложения ? Я не мог понять, как сделать это эффективно. km
Гек Беннетт
@ Tsuyoshi, как вы определяете SAT? Разрешаем ли мы повторение пунктов? или литералы и / или переменные в заданных предложениях? Потому что, если вы не разрешаете повторение литералов и / или переменных в определенных пунктах, вы не можете иметь формулу CNF, которая является тавтологией.
Tayfun Pay
@Tayfun - я действительно задал этот вопрос, Tsuyoshi помог с незначительным редактированием. Вы правы насчет тавтологии в формуле CNF, требующей повторных литералов. Любой вариант SAT был бы интересен, CNF-SAT без повторения в пунктах (в этом случае тавтологии невозможны), или, возможно, CIRCUIT-SAT в более общем смысле. Я не думаю, что этот выбор меняет вкус вопроса.
Гек Беннет

Ответы:

13

Учитывая экземпляр SAT, целое число и присвоение переменной, мы можем за полиномиальное время решить , удовлетворяются ли ровно k предложений, просто посчитав количество удовлетворенных предложений и проверив, равно ли это число k . Следовательно, мы можем вычислить общее количество переменных, удовлетворяющих точно k предложениям, используяkkkk оракула #P .

Как и Max-SAT, Median-SAT можно вычислить за полиномиальное время с помощью оракула Это показывает , что проблема заключается в Р Р # РF P S P A C E .#PFP#PFPSPACE

Колин Маккуиллан
источник
Ты абсолютно прав. Это очень чистый аргумент, и я думаю, это довольно очевидно из определения #P. Я кое-что узнал.
Гек Беннетт
1
Позвольте мне подробнее остановиться на этом: Колин говорит, что, поскольку за полиномиальное время мы можем определить, удовлетворяет ли конкретное присвоение переменной предложений, мы можем недетерминированно угадать присвоение переменной, а затем подсчитать, сколько приемных путей (т. Е. Принимает присвоение переменных) в этом запросе. имел использование оракула # P (по определению # P ). Повторяя через к = 1 до т, мы можем подсчитать среднее количество статей , удовлетворенных в F P # P . k#P#PFP#P
Гек Беннетт
3

lgm+1 вызовов оракула для MAJSAT.

M(φ)φkψkxxkφφkψk

ψkψkM(φ)k. So, to learn M(φ), apply binary search (start with k=m/2, then increase or decrease k according to the results from the oracle). After lgm+1 iterations, the binary search reveals the value of M(φ). Each iteration requires one query to our oracle for MAJSAT.

D.W.
источник