Я рассматриваю язык всех выполнимых логических формул высказываний, SAT (чтобы гарантировать, что у этого есть конечный алфавит, мы бы закодировали пропозициональные буквы некоторым подходящим способом [править: ответы указали, что ответ на вопрос, возможно, не является устойчивым при различные кодировки, поэтому нужно быть более конкретным - см. мои выводы ниже] ). Мой простой вопрос
Является ли SAT контекстно-свободным языком?
Мое первое предположение состояло в том, что сегодняшний (в начале 2017 года) ответ должен быть «Никто не знает, поскольку это относится к нерешенным вопросам в теории сложности». Однако это не совсем так (см. Ответ ниже), хотя и не полностью ложно. Вот краткое изложение того, что мы знаем (начиная с некоторых очевидных вещей).
- SAT не является регулярным (потому что даже синтаксис логики высказываний не является регулярным из-за совпадения скобок)
- SAT является контекстно-зависимым (для него нетрудно дать LBA)
- SAT является NP-полной (Кук / Левин) и, в частности, определяется недетерминированными ТМ за полиномиальное время.
- SAT также может распознаваться однонаправленными недетерминированными стековыми автоматами (1-NSA) (см. Раунды WC, Сложность распознавания в языках среднего уровня , Теория коммутации и автоматов, 1973, 145-158 http://dx.doi.org/ 10.1109 / SWAT.1973.5 )
- Слово проблема для контекстно-свободных языков имеет свой собственный класс сложности (см. Https://complexityzoo.uwaterloo.ca/Complexity_Zoo:C#cfl )
- , где LOGCFL - класс пространства журнала проблем, сводимый к CFL (см.Https://complexityzoo.uwaterloo.ca/Complexity_Zoo:L#logcfl). Известно, что NL ⊆ LOGCFL .
- NC 1 ⊊ PHLOGCFL LOGCFL
Однако этот последний пункт все еще оставляет возможность того, что SAT, как известно, не находится в . В общем, я не мог найти много информации об отношении к иерархии которая могла бы помочь прояснить эпистемологический статус моего вопроса.CFL NC
Замечание (после просмотра некоторых первоначальных ответов): я не ожидаю, что формула будет в соединительной нормальной форме (это не будет иметь значения для сути ответа, и обычно аргументы все еще применимы, поскольку CNF также является формулой. Но утверждают, что версия проблемы с постоянным числом переменных является обычной ошибкой, поскольку для синтаксиса нужны скобки.).
Вывод: вопреки моему предположению, основанному на теории сложности, можно прямо показать, что SAT не является контекстно-свободным. Таким образом, ситуация такова:
- Известно, что SAT не является контекстно-свободным (другими словами: SAT не находится в ), при условии, что используется «прямое» кодирование формул, где пропозициональные переменные идентифицируются двоичными числами (и некоторые другие символы используются для операторов и разделителей).
- Не известно, находится ли SAT в , но «большинство экспертов думают», что это не так, поскольку это подразумевает . Это также означает, что неизвестно, являются ли другие «разумные» кодировки SAT контекстно-свободными (при условии, что мы считаем логическое пространство приемлемым усилием кодирования для NP-трудной задачи).P = NP
Обратите внимание, что эти две точки не подразумевают . Это можно показать непосредственно, показав, что в есть языки (следовательно, в ), которые не являются контекстно-свободными (например, ).L LOGCFL a n b n c n
Ответы:
Просто альтернативное доказательство, использующее сочетание хорошо известных результатов.
Предположим, что:
Например, записывается в виде: ( оператор имеет приоритет над ) ,φ=(x1∨x2)∧−x3 sφ=+1∨+10∧−11∈S ∨ ∧
Предположим, что st, соответствующая формула выполнима есть CF.L={sφ∈S∣ φ }
Если мы пересекаем его с обычным языком: мы все равно получаем язык CF. Мы также можем применить гомоморфизм: , и язык остается CF.R={+1a∧−1b∧−1c∣a,b,c>0} h(+)=ϵ h(−)=ϵ
Но мы получаем следующий язык: , потому что если то формула "source" что неудовлетворительно (аналогично, если ). Но является хорошо известным противоречием языка CF .L′={1a∧1b∧1c∣a≠b,a≠c} a=b +xa∧−xa∧−xb a=c L′ ⇒
источник
Если число переменных конечно, то так же, как и число выполнимых конъюнкций, ваш язык SAT конечен (и, следовательно, регулярен). [Редактировать: это утверждение принимает форму CNFSAT.]
В противном случае, давайте согласимся кодировать формулы, такие как , в . Мы будем использовать лемму Огдена, чтобы доказать, что язык всех выполнимых конъюнкций не является контекстно-свободным.(x17∨¬x21)∧(x1∨x2∨x3) (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 wp w (1p) (xN) N p p 1p w xq q 1 p быть выполнимым - например, гарантируя, что каждое другое предложение имеет отрицание каждого такого . Это означает, что не имеет свойства «отрицательной накачки», и мы заключаем, что язык не является контекстно-свободным. [Примечание: я проигнорировал тривиальные случаи, когда накачка производит плохо сформированные струны.]w xq w
источник