Является ли SAT контекстно-свободным языком?

12

Я рассматриваю язык всех выполнимых логических формул высказываний, SAT (чтобы гарантировать, что у этого есть конечный алфавит, мы бы закодировали пропозициональные буквы некоторым подходящим способом [править: ответы указали, что ответ на вопрос, возможно, не является устойчивым при различные кодировки, поэтому нужно быть более конкретным - см. мои выводы ниже] ). Мой простой вопрос

Является ли SAT контекстно-свободным языком?

Мое первое предположение состояло в том, что сегодняшний (в начале 2017 года) ответ должен быть «Никто не знает, поскольку это относится к нерешенным вопросам в теории сложности». Однако это не совсем так (см. Ответ ниже), хотя и не полностью ложно. Вот краткое изложение того, что мы знаем (начиная с некоторых очевидных вещей).

  1. SAT не является регулярным (потому что даже синтаксис логики высказываний не является регулярным из-за совпадения скобок)
  2. SAT является контекстно-зависимым (для него нетрудно дать LBA)
  3. SAT является NP-полной (Кук / Левин) и, в частности, определяется недетерминированными ТМ за полиномиальное время.
  4. SAT также может распознаваться однонаправленными недетерминированными стековыми автоматами (1-NSA) (см. Раунды WC, Сложность распознавания в языках среднего уровня , Теория коммутации и автоматов, 1973, 145-158 http://dx.doi.org/ 10.1109 / SWAT.1973.5 )
  5. Слово проблема для контекстно-свободных языков имеет свой собственный класс сложности CFL (см. Https://complexityzoo.uwaterloo.ca/Complexity_Zoo:C#cfl )
  6. , где LOGCFL - класс пространства журнала проблем, сводимый к CFL (см.Https://complexityzoo.uwaterloo.ca/Complexity_Zoo:L#logcfl). Известно, что NLLOGCFL .CFLLOGCFLAC1LOGCFLCFLNLLOGCFL
  7. NLNPNC 1PHNL=NPNC1PHLOGCFL LOGCFLNPLOGCFLLOGCFL

Однако этот последний пункт все еще оставляет возможность того, что SAT, как известно, не находится в . В общем, я не мог найти много информации об отношении к иерархии которая могла бы помочь прояснить эпистемологический статус моего вопроса.CFL NCCFLCFLNC

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

Вывод: вопреки моему предположению, основанному на теории сложности, можно прямо показать, что SAT не является контекстно-свободным. Таким образом, ситуация такова:

  1. Известно, что SAT не является контекстно-свободным (другими словами: SAT не находится в ), при условии, что используется «прямое» кодирование формул, где пропозициональные переменные идентифицируются двоичными числами (и некоторые другие символы используются для операторов и разделителей).CFL
  2. Не известно, находится ли SAT в , но «большинство экспертов думают», что это не так, поскольку это подразумевает . Это также означает, что неизвестно, являются ли другие «разумные» кодировки SAT контекстно-свободными (при условии, что мы считаем логическое пространство приемлемым усилием кодирования для NP-трудной задачи).P = NPLOGCFLP=NP

Обратите внимание, что эти две точки не подразумевают . Это можно показать непосредственно, показав, что в есть языки (следовательно, в ), которые не являются контекстно-свободными (например, ).L LOGCFL a n b n c nCFLLOGCFLLLOGCFLanbncn

MAK
источник
Если бы это было так, то P = NP.
Райан
1
Если бы SAT были свободны от контекста, то динамическое программирование (алгоритм CYK) давало бы алгоритм полиномиального времени для проверки членства в SAT, давая P = NP. Даже P = NP не означает, что SAT не зависят от контекста. Такое кодирование переменных кажется более важным, чем вы полагаете. Я не проработал детали, но если бы вы добавили к переменным унарные или двоичные «индексы», я думаю, у вас будут проблемы с различием (x и y) от (x и не x) для достаточно больших индексов.
AdamF
Вы должны быть точными в отношении представления, прежде чем претендовать на выводы P = NP. Например, факторинг числа N является полиномиальным временем в N (интересный вопрос касается количества битов, необходимых для записи N в двоичном виде, или о log N).
Арье
Я знал о заключении P = NP, и поэтому не ожидалось, что ответом будет «да» (извините за то, что я немного провокационен в том, как я это сформулировал ;-). Я все еще задавался вопросом, действительно ли это известно или просто то, во что «верит большинство экспертов» (ответы теперь ясно указывают на то, что первое верно; я выберу один в свое время).
мак

Ответы:

7

Просто альтернативное доказательство, использующее сочетание хорошо известных результатов.

Предположим, что:

  • переменные выражаются с помощью регулярного выраженияd=(+|)1(0|1)
  • и что ( обычный ) язык (над используемый для представления формул CNF, имеет вид: ; только отметьте, что захватывает все допустимые формулы CNF вплоть до переименования переменных.S = { d + ( d + ) ( ( d + ( d + ) ∗)Σ={0,1,+,,,})S={d+(d+)((d+(d+)))}S

Например, записывается в виде: ( оператор имеет приоритет над ) ,φ=(x1x2)x3sφ=+1+1011S

Предположим, что st, соответствующая формула выполнима есть CF.L={sφSφ}

Если мы пересекаем его с обычным языком: мы все равно получаем язык CF. Мы также можем применить гомоморфизм: , и язык остается CF.R={+1a1b1ca,b,c>0}h(+)=ϵh()=ϵ

Но мы получаем следующий язык: , потому что если то формула "source" что неудовлетворительно (аналогично, если ). Но является хорошо известным противоречием языка CF .L={1a1b1cab,ac}a=b+xaxaxba=cL

Марцио де Биаси
источник
Я принял этот ответ сейчас, так как с другим подходом все еще остается открытым вопрос (см. Комментарии), и мне нравится несколько более базовый аргумент. Было бы неплохо подчеркнуть, что аргумент специфичен для выбранной кодировки, и действительно неизвестно, можно ли найти другую простую (logspace) кодировку, которая приводит к контекстно-свободному языку.
Мак
1
@mak: Я подозреваю, что любое другое «разумное» кодирование SAT может быть доказано не CF с подобной техникой. Возможно, другим интересным направлением было бы изучение того, можем ли мы применить какую-то диагонализацию для получения более общего доказательства: формула SAT кодирует вычисление, которое имитирует автоматы нажатия на заданном входе, и оно выполнимо тогда и только тогда, когда это не так. Я не принимаю это. Но это только нечеткая идея ...
Марцио Де
Проверка, находится ли строка на обычном языке в P. Предположим, что SAT был в Reg. Тогда NP = coNP. Пусть L будет в Reg. Рассмотрим формулу, которая верна, если ее нет в L. Она находится в NP, поэтому ее можно выразить в виде формулы SAT. Это на языке, если это не так.
Каве
5

Если число переменных конечно, то так же, как и число выполнимых конъюнкций, ваш язык SAT конечен (и, следовательно, регулярен). [Редактировать: это утверждение принимает форму CNFSAT.]

В противном случае, давайте согласимся кодировать формулы, такие как , в . Мы будем использовать лемму Огдена, чтобы доказать, что язык всех выполнимых конъюнкций не является контекстно-свободным.(x17¬x21)(x1x2x3)(17+~21)(1+2+3)

Пусть будет «маркирующей» константой в лемме Огдена и рассмотрим sat-формулу , первое предложение которой состоит из - то есть кодировки , где - десятичное число, состоящее из из них. Мы отмечаем единиц из а затем требуем, чтобы все накачки соответствующего разложения (см. Заключение леммы Огдена) также были выполнимыми. Но мы можем легко заблокировать это, требуя, чтобы ни одно предложение, содержащее , где - последовательность , короче чемw ( 1 p ) ( x N ) N p p 1 p w x q q 1 p w x q wpw(1p)(xN)Npp1pwxqq1pбыть выполнимым - например, гарантируя, что каждое другое предложение имеет отрицание каждого такого . Это означает, что не имеет свойства «отрицательной накачки», и мы заключаем, что язык не является контекстно-свободным. [Примечание: я проигнорировал тривиальные случаи, когда накачка производит плохо сформированные струны.]wxqw

Арье
источник
Примечание: в моем утверждении, что для конечного числа переменных язык конечен, я неявно запрещаю повторять переменную в предложении или предложении неограниченно много раз
Aryeh
... Но я думаю, что язык все еще регулярен, потому что кто-то берет конечный набор формул "по существу различных" (т.е. без тривиальных повторений), а затем допускает различные повторения.
Арье
Претензия с регулярностью работает только для CNFSAT (я добавил пояснение к своему вопросу).
мак
4
Даже с произвольными формулами, не относящимися к CNF, в конечном числе переменных, выполнимость (и любой язык, который не может различить две логически эквивалентные формулы по этому вопросу) легко увидеть как контекстно-свободную. Однако я не вижу актуальности этого. Удовлетворенность формул в конечном числе переменных является тривиальной проблемой, которая не имеет ничего общего со сложностью SAT.
Эмиль Йержабек
1
Хорошо, я вижу проблему - я неявно предполагал, чтоможет быть ограничен по длине (как в классической лемме прокачки), но также может указывать что-то о его расположении в строке. Я думаю, что аргумент можно исправить, заново выполнив лемму прокачки с нуля. Мы сделаем эту первую переменную действительно длинной последовательностью 1 - достаточно длинной, чтобы какое-то поддерево, генерирующее непрерывную подстроку из этих 1, было достаточно глубоким для применения принципа pidgeonhole. |xyz|
Арье