Конъюнктивная нормальная форма - Conjunctive normal form
В булевой логике , A формула находится в конъюнктивной нормальной форме ( КНФ ) или клаузальной нормальной форме , если это соединение одного или несколько положений , где раздел представляет собой дизъюнкцию из литералов ; иначе говоря, это произведение сумм или И или ИЛИ . Как каноническая нормальная форма , она полезна в автоматическом доказательстве теорем и теории цепей .
Все союзы литералов и все дизъюнкции литералов находятся в CNF, поскольку их можно рассматривать как союзы однобуквенных предложений и союзов одного предложения, соответственно. Как и в дизъюнктивной нормальной форме (ДНФ), единственные пропозициональные связки, которые может содержать формула в КНФ, - это и , или , и not . Оператор not может использоваться только как часть литерала, что означает, что он может предшествовать только пропозициональной переменной или символу предиката .
В автоматическом доказательстве теорем понятие « нормальная форма клаузии » часто используется в более узком смысле, имея в виду конкретное представление формулы CNF в виде набора наборов литералов.
Примеры и не примеры
Все следующие формулы в переменных и имеют конъюнктивную нормальную форму:
Для ясности дизъюнктивные предложения написаны выше в круглых скобках. В дизъюнктивной нормальной форме с заключенными в скобки конъюнктивными предложениями последний случай такой же, но предпоследний . Константы true и false обозначаются пустым конъюнктом и одним предложением, состоящим из пустого дизъюнкта, но обычно записываются явно.
Следующие формулы не имеют конъюнктивной нормальной формы:
- , поскольку ИЛИ вложено в НЕ
- , так как И вложено в ИЛИ
Каждую формулу можно эквивалентно записать как формулу в конъюнктивной нормальной форме. Три не примеров в CNF:
Преобразование в CNF
Каждую пропозициональную формулу можно преобразовать в эквивалентную формулу в CNF. Это преобразование основано на правилах логической эквивалентности : исключении двойного отрицания , законах Де Моргана и распределительном законе .
Поскольку все пропозициональные формулы могут быть преобразованы в эквивалентные формулы в конъюнктивной нормальной форме, доказательства часто основываются на предположении, что все формулы являются КНФ. Однако в некоторых случаях это преобразование в CNF может привести к экспоненциальному взрыву формулы. Например, перевод следующей формулы, отличной от CNF, в CNF дает формулу с пунктами:
В частности, полученная формула:
Эта формула содержит пункты; каждое предложение содержит одно или для каждого .
Существуют преобразования в CNF, которые избегают экспоненциального увеличения размера, сохраняя выполнимость, а не эквивалентность . Эти преобразования гарантируют только линейное увеличение размера формулы, но вводят новые переменные. Например, приведенная выше формула может быть преобразована в CNF путем добавления следующих переменных :
Интерпретация удовлетворяет эта формула только тогда , когда по крайней мере один из новых переменных верно. Если эта переменная есть , то оба и также верны. Это означает, что каждая модель , удовлетворяющая этой формуле, также удовлетворяет исходной. С другой стороны, только некоторые из моделей исходной формулы удовлетворяют этой модели: поскольку они не упоминаются в исходной формуле, их значения не имеют отношения к ее удовлетворению, чего нет в последней формуле. Это означает, что исходная формула и результат перевода равнозначны, но не эквивалентны .
Альтернативный перевод, преобразование Цейтина , также включает в себя клаузулы . С этими пунктами формула подразумевает ; эта формула часто рассматривается как «определение» как название для .
Логика первого порядка
В логике первого порядка конъюнктивная нормальная форма может быть взята дальше, чтобы получить клаузальную нормальную форму логической формулы, которую затем можно использовать для выполнения разрешения первого порядка . В автоматическом доказательстве теорем на основе разрешающей способности формула CNF
, с литералами, обычно представляется как набор наборов | |||||||||||||||||||
. |
См ниже в качестве примера.
Вычислительная сложность
Важный набор проблем вычислительной сложности включает нахождение присвоений переменным булевой формулы, выраженной в конъюнктивной нормальной форме, таким образом, чтобы формула была истинной. Проблема k -SAT - это проблема нахождения удовлетворительного присваивания булевой формуле, выраженной в CNF, в которой каждая дизъюнкция содержит не более k переменных. 3-SAT является NP-полной (как и любая другая задача k -SAT с k > 2), в то время как 2-SAT, как известно, имеет решения за полиномиальное время . Как следствие, задача преобразования формулы в ДНФ с сохранением выполнимости является NP-трудной ; в общем , преобразование в CNF с сохранением достоверности также является NP-трудным; следовательно, преобразование с сохранением эквивалентности в DNF или CNF снова является NP-трудным.
Типичные проблемы в этом случае связаны с формулами в "3CNF": конъюнктивная нормальная форма с не более чем тремя переменными на конъюнкт. Примеры таких формул, встречающихся на практике, могут быть очень большими, например, со 100 000 переменных и 1 000 000 конъюнктов.
Формула в КНФ может быть преобразована в equisatisfiable формулы в « K CNF» (для к ≥3) путем замены каждого конъюнкт с более чем K переменных двумя конъюнктов и с Z новой переменной, и повторяя так часто , как это необходимо.
Преобразование из логики первого порядка
Чтобы преобразовать логику первого порядка в CNF:
- Преобразовать в нормальную форму отрицания .
- Устранение последствий и эквивалентностей: неоднократно заменять на ; заменить на . В конце концов, это устранит все вхождения и .
- Переместите НЕ внутрь, многократно применяя закон Де Моргана . В частности, заменить на ; заменить на ; и заменить на ; заменить на ; с . После этого a может стоять только непосредственно перед предикатным символом.
- Стандартизируйте переменные
- Для предложений, например, которые используют одно и то же имя переменной дважды, измените имя одной из переменных. Это позволяет избежать путаницы при отбрасывании кванторов. Например, переименован в .
-
Сколемизируйте заявление
- Переместить кванторы наружу: повторно заменить на ; заменить на ; заменить на ; заменить на . Эти замены сохраняют эквивалентность, поскольку предыдущий шаг стандартизации переменных гарантировал, что этого не произойдет в . После этих замен, квантор может иметь место только в начальном префиксе формулы, но никогда не Внутри , или .
- Неоднократно заменяйте на , где - новый символ функции, так называемая « сколемская функция ». Это единственный шаг, который сохраняет только выполнимость, а не эквивалентность. Он устраняет все экзистенциальные кванторы.
- Отбросьте все универсальные кванторы.
- Распределите ИЛИ внутрь по И: несколько раз замените на .
В качестве примера формула «Любой, кто любит всех животных, в свою очередь, кого-то любит» преобразуется в CNF (а затем в форму предложения в последней строке) следующим образом (выделение правила замены заменяется переиндексом в ):
на 1,1 | ||||||||||||||||||||||||||||||||||||
на 1,1 | ||||||||||||||||||||||||||||||||||||
на 1,2 | ||||||||||||||||||||||||||||||||||||
на 1,2 | ||||||||||||||||||||||||||||||||||||
на 1,2 | ||||||||||||||||||||||||||||||||||||
на 2 | ||||||||||||||||||||||||||||||||||||
на 3,1 | ||||||||||||||||||||||||||||||||||||
на 3,1 | ||||||||||||||||||||||||||||||||||||
на 3,2 | ||||||||||||||||||||||||||||||||||||
по 4 | ||||||||||||||||||||||||||||||||||||
на 5 | ||||||||||||||||||||||||||||||||||||
( представление статьи ) |
Неформально функция Сколема может рассматриваться как уступка человеку, которого любит, в то время как порождение животного (если оно есть), которое не любит. Третья последняя строка снизу читается как « не любит животное , иначе его любит » .
Вторая последняя строка сверху - это CNF.
Примечания
- ^ Питер Б. Эндрюс, Введение в математическую логику и теорию типов , 2013, ISBN 9401599343 , стр. 48
- ^ a b Искусственный интеллект: современный подход. Архивировано 31 августа 2017 г. в Wayback Machine [1995 ...] Рассел и Норвиг.
- ^ Цейтин (1968)
- ^ Джексон и Шеридан (2004)
- ^ так как один из способов проверить CNF на выполнимость - это преобразовать его в DNF , выполнимость которого может быть проверена за линейное время.
Смотрите также
- Алгебраическая нормальная форма
- Дизъюнктивная нормальная форма
- Оговорка о роге
- Алгоритм Куайна – Маккласки
использованная литература
- Дж. Элдон Уайтситт (24 мая 2012 г.). Булева алгебра и ее приложения . Курьерская корпорация. ISBN 978-0-486-15816-7.
- Ханс Кляйне Бюнинг; Теодор Леттманн (28 августа 1999 г.). Логика высказываний: дедукция и алгоритмы . Издательство Кембриджского университета. ISBN 978-0-521-63017-7.
- Пол Джексон, Дэниел Шеридан: Преобразования форм предложения для логических схем . В: Holger H. Hoos, David G. Mitchell (Eds.): Theory and Applications of Satisfiability Testing, 7-я Международная конференция, SAT 2004, Ванкувер, Британская Колумбия, Канада, 10–13 мая 2004 г., Пересмотренные избранные статьи. Конспект лекций по информатике 3542, Springer 2005, стр. 183–198
- Г. С. Цейтин: О сложности вывода в исчислении высказываний . В кн .: Слисенко А.О. (ред.) Структуры в конструктивной математике и математической логике, часть II, Семинары по математике, с. 115–125. Математический институт им. В. А. Стеклова (1968)