Все союзы литералов и все дизъюнкции литералов находятся в CNF, поскольку их можно рассматривать как союзы однобуквенных предложений и союзов одного предложения, соответственно. Как и в дизъюнктивной нормальной форме (ДНФ), единственными пропозициональными связками, которые может содержать формула в КНФ, являются и , или , и not . Оператор not может использоваться только как часть литерала, что означает, что он может предшествовать только пропозициональной переменной или символу предиката .
В автоматическом доказательстве теорем понятие « нормальная форма клаузии » часто используется в более узком смысле, имея в виду конкретное представление формулы CNF в виде набора наборов литералов.
Все следующие формулы в переменных A, B, C, D, E и F находятся в конъюнктивной нормальной форме:
Третья формула имеет конъюнктивную нормальную форму, потому что она рассматривается как «союз» только с одним конъюнктом, а именно с предложением . Кстати, две последние формулы также находятся в дизъюнктивной нормальной форме .
Следующие формулы не имеют конъюнктивной нормальной формы:
, поскольку ИЛИ вложено в НЕ
, поскольку И вложено в ИЛИ
Каждую формулу можно эквивалентно записать как формулу в конъюнктивной нормальной форме. В частности, это относится к трем только что упомянутым не примерам; они соответственно эквивалентны следующим трем формулам, которые имеют конъюнктивную нормальную форму:
Поскольку все пропозициональные формулы могут быть преобразованы в эквивалентные формулы в конъюнктивной нормальной форме, доказательства часто основываются на предположении, что все формулы являются КНФ. Однако в некоторых случаях это преобразование в CNF может привести к экспоненциальному взрыву формулы. Например, перевод следующей формулы, отличной от CNF, в CNF дает формулу с пунктами:
В частности, полученная формула:
Эта формула содержит пункты; каждое предложение содержит одно или для каждого .
Существуют преобразования в CNF, которые избегают экспоненциального увеличения размера, сохраняя выполнимость, а не эквивалентность . [2] [3] Эти преобразования гарантируют только линейное увеличение размера формулы, но вводят новые переменные. Например, приведенная выше формула может быть преобразована в CNF путем добавления следующих переменных :
Интерпретация удовлетворяет эта формула только тогда , когда по крайней мере один из новых переменных верно. Если эта переменная есть , то оба и также верны. Это означает, что каждая модель , удовлетворяющая этой формуле, также удовлетворяет исходной. С другой стороны, только некоторые из моделей исходной формулы удовлетворяют этой модели: поскольку они не упоминаются в исходной формуле, их значения не имеют отношения к ее удовлетворению, чего нет в последней формуле. Это означает, что исходная формула и результат перевода равнозначны, но не эквивалентны .
Альтернативный перевод, преобразование Цейтина , также включает в себя клаузулы . С этими пунктами формула подразумевает ; эта формула часто рассматривается как «определение» как название для .
В логике первого порядка конъюнктивная нормальная форма может быть взята дальше, чтобы получить клаузальную нормальную форму логической формулы, которую затем можно использовать для выполнения разрешения первого порядка . В автоматическом доказательстве теорем на основе разрешающей способности формула CNF
, с литералами, обычно представляется как набор наборов
.
См ниже в качестве примера.
Вычислительная сложность [ править ]
Важный набор проблем вычислительной сложности включает нахождение присвоений переменным булевой формулы, выраженной в конъюнктивной нормальной форме, таким образом, чтобы формула была истинной. Задача k -SAT - это проблема нахождения удовлетворительного присваивания булевой формуле, выраженной в CNF, в которой каждая дизъюнкция содержит не более k переменных. 3-SAT является NP-полной (как и любая другая задача k -SAT с k > 2), в то время как 2-SAT, как известно, имеет решения за полиномиальное время . Как следствие, [4] задача преобразования формулы в ДНФ, сохраняя выполнимость, NP-трудна ; в общем , преобразование в CNF с сохранением достоверности также является NP-трудным; следовательно, преобразование с сохранением эквивалентности в DNF или CNF снова является NP-трудным.
Типичные проблемы в этом случае связаны с формулами в "3CNF": конъюнктивная нормальная форма с не более чем тремя переменными на конъюнкт. Примеры таких формул, встречающихся на практике, могут быть очень большими, например, со 100 000 переменных и 1 000 000 конъюнктов.
Формула в КНФ может быть преобразована в equisatisfiable формулы в « K CNF» (для к ≥3) путем замены каждого конъюнкт с более чем K переменных двумя конъюнктов и с Z новой переменной, и повторяя так часто , как это необходимо.
Преобразование из логики первого порядка [ править ]
Чтобы преобразовать логику первого порядка в CNF: [1]
Преобразовать в нормальную форму отрицания .
Устранение последствий и эквивалентностей: неоднократно заменять на ; заменить на . В конце концов, это устранит все вхождения и .
Переместите НЕ внутрь, многократно применяя закон Де Моргана . В частности, заменить на ; заменить на ; и заменить на ; заменить на ; с . После этого a может стоять только непосредственно перед предикатным символом.
Стандартизируйте переменные
Для предложений, например, которые используют одно и то же имя переменной дважды, измените имя одной из переменных. Это позволяет избежать путаницы при отбрасывании кванторов. Например, переименован в .
Сколемизируйте заявление
Переместить кванторы наружу: повторно заменить на ; заменить на ; заменить на ; заменить на . Эти замены сохраняют эквивалентность, поскольку предыдущий шаг стандартизации переменных гарантировал, что этого не произойдет в . После этих замен, квантор может иметь место только в начальном префиксе формулы, но никогда не Внутри , или .
Неоднократно заменяйте на , где - новый символ функции, так называемая " сколем функция ". Это единственный шаг, который сохраняет только выполнимость, а не эквивалентность. Он устраняет все экзистенциальные кванторы.
Отбросьте все универсальные кванторы.
Распределите ИЛИ внутрь по И: несколько раз замените на .
Например, формула «Любой, кто любит всех животных, в свою очередь, кого-то любит» преобразуется в CNF (а затем в форму предложения в последней строке) следующим образом (выделение правила замены переиндексируется в ):
на 1,1
на 1,1
на 1,2
на 1,2
на 1,2
на 2
на 3,1
на 3,1
на 3,2
по 4
на 5
( представление статьи )
Неформально, функция skolem может рассматриваться как уступка человеку, которого любит, в то время как рождение животного (если оно есть), которое не любит. Третья последняя строка снизу читается как « не любит животное , иначе его любят » .
Вторая последняя строка сверху - это CNF.
Заметки [ править ]
^ 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)
Внешние ссылки [ править ]
"Конъюнктивная нормальная форма" , Энциклопедия математики , EMS Press , 2001 [1994]
Java-апплет для преобразования в CNF и DNF, показывающий используемые законы