stringtranslate.com

Конъюнктивная нормальная форма

В булевой логике формула находится в конъюнктивной нормальной форме ( CNF ) или клаузальной нормальной форме , если она представляет собой соединение одного или нескольких предложений , где предложение является дизъюнкцией литералов ; иначе говоря, это произведение сумм или И из ИЛИ . Как каноническая нормальная форма , она полезна в автоматизированном доказательстве теорем и теории цепей .

В автоматизированном доказательстве теорем понятие « клаузальная нормальная форма » часто используется в более узком смысле, означая конкретное представление формулы КНФ в виде набора наборов литералов.

Определение

Логическая формула считается находящейся в КНФ, если она представляет собой конъюнкцию одной или нескольких дизъюнкций одного или нескольких литералов . Как и в дизъюнктивной нормальной форме (ДНФ), единственными пропозициональными операторами в КНФ являются or ( ), и ( ), а не ( ). Оператор not может использоваться только как часть литерала, то есть он может предшествовать только пропозициональной переменной .

Ниже приведена контекстно-свободная грамматика для CNF:

  1. КНФ → ( Дизъюнкция ) КНФ
  2. CNF → ( Дизъюнкция )
  3. ДизъюнкцияБуквальная дизъюнкция
  4. ДизъюнкцияБуквальный
  5. ЛитералПеременная
  6. ЛитералПеременная

Где Variable — любая переменная.

Все следующие формулы в переменных , и находятся в конъюнктивной нормальной форме:

Следующие формулы не находятся в конъюнктивной нормальной форме: [1]

Преобразование в CNF

В классической логике каждую пропозициональную формулу можно преобразовать в эквивалентную формулу в КНФ. [2] Это преобразование основано на правилах логической эквивалентности : исключении двойного отрицания , законах Де Моргана и распределительном законе .

Основной алгоритм

Алгоритм вычисления CNF-эквивалента данной пропозициональной формулы основан на дизъюнктивной нормальной форме (DNF) : шаг 1. [3] Затем преобразуется в путем замены И на ИЛИ и наоборот, при этом отрицая все литералы. Убрать все . [2]

Преобразование синтаксическими средствами

Преобразуйте формулу высказывания в КНФ .

Шаг 1 : Преобразуйте его отрицание в дизъюнктивную нормальную форму. [3]

, [4]

где каждый представляет собой соединение литералов . [5]

Шаг 2 : Отрицание . Затем перейдите внутрь, применяя (обобщенные) эквиваленты Де Моргана до тех пор, пока это станет невозможно.

где

Шаг 3 : Удалите все двойные отрицания.

Пример

Преобразуйте формулу высказывания в КНФ . [6]

(Полный) ДНФ-эквивалент его отрицания равен [3]

Преобразование семантическими средствами

Эквивалент формулы в CNF может быть получен из ее таблицы истинности . Еще раз рассмотрим формулу

. [6]

Соответствующая таблица истинности

Эквивалент CNF

Каждая дизъюнкция отражает присвоение переменных, значение которых равно F(alse). Если в таком присваивании переменная

Другие подходы

Поскольку все пропозициональные формулы можно преобразовать в эквивалентную формулу в конъюнктивной нормальной форме, доказательства часто основаны на предположении, что все формулы являются КНФ. Однако в некоторых случаях это преобразование в CNF может привести к экспоненциальному взрыву формулы. Например, перевод формулы, отличной от CNF

в CNF создает формулу с предложениями:

Каждое предложение содержит либо или для каждого .

Существуют преобразования в КНФ, которые избегают экспоненциального увеличения размера, сохраняя выполнимость , а не эквивалентность . [7] [8] Эти преобразования гарантированно только линейно увеличивают размер формулы, но вводят новые переменные. Например, приведенную выше формулу можно преобразовать в CNF, добавив переменные следующим образом:

Интерпретация удовлетворяет этой формуле только в том случае , если хотя бы одна из новых переменных верна. Если эта переменная равна , то оба значения и также верны. Это означает, что каждая модель , удовлетворяющая этой формуле, также удовлетворяет исходной. С другой стороны, только некоторые модели исходной формулы удовлетворяют этому требованию: поскольку они не упоминаются в исходной формуле, их значения не имеют отношения к ее удовлетворению, чего не происходит в последней формуле. Это означает, что исходная формула и результат перевода равновыполнимы, но не эквивалентны .

Альтернативный перевод — преобразование Цейтина — включает также придаточные . С этими пунктами формула подразумевает ; эта формула часто считается «определяющей» как имя для .

Максимальное количество дизъюнкций

Рассмотрим пропозициональную формулу с переменными .

Возможны литералы: .

имеет непустые подмножества. [9]

Это максимальное количество дизъюнкций, которое может иметь КНФ. [11]

Все комбинации истинностных функций могут быть выражены с помощью дизъюнкций, по одной на каждую строку таблицы истинности. В примере ниже они подчеркнуты.

Пример

Рассмотрим формулу с двумя переменными и .

Самая длинная КНФ имеет дизъюнкции: [11]

Эта формула противоречит .

Вычислительная сложность

Важный набор проблем вычислительной сложности включает в себя поиск таких присвоений переменным булевой формулы, выраженных в конъюнктивной нормальной форме, чтобы формула была истинной. Проблема k -SAT — это проблема поиска удовлетворяющего назначения булевой формуле, выраженной в КНФ, в которой каждая дизъюнкция содержит не более k переменных. 3-SAT является NP-полной (как и любая другая задача k -SAT с k > 2), тогда как известно, что 2-SAT имеет решения за полиномиальное время . Как следствие [12] задача преобразования формулы в ДНФ с сохранением выполнимости является NP-трудной ; двойственно , преобразование в CNF с сохранением достоверности также является NP-трудным; следовательно, преобразование с сохранением эквивалентности в DNF или CNF снова является NP-трудным.

Типичные проблемы в этом случае связаны с формулами в «3CNF»: конъюнктивной нормальной форме с не более чем тремя переменными на конъюнкт. Примеры таких формул, встречающиеся на практике, могут быть очень большими, например, со 100 000 переменных и 1 000 000 конъюнктов.

Формула в CNF может быть преобразована в равновыполнимую формулу в « k CNF» (для k ≥3) путем замены каждого конъюнкта с более чем k переменными двумя конъюнктами и с Z новой переменной и повторения так часто, как это необходимо.

Логика первого порядка

В логике первого порядка конъюнктивную нормальную форму можно использовать дальше, чтобы получить клаузальную нормальную форму логической формулы, которую затем можно использовать для выполнения разрешения первого порядка . При автоматизированном доказательстве теорем на основе разрешения формула CNF

См. пример ниже.

Преобразование из логики первого порядка

Чтобы преобразовать логику первого порядка в CNF: [14]

  1. Привести отрицание к нормальной форме .
    1. Устраните последствия и эквивалентности: повторно замените на ; заменить . _ В конечном итоге это устранит все появления и .
    2. Переместите НОТ внутрь, неоднократно применяя закон Де Моргана . В частности, замените на ; заменить ; _ и замените на ; заменить ; _ с . После этого a может встречаться только непосредственно перед символом-предикатом.
  2. Стандартизируйте переменные
    1. Для предложений, подобных которым дважды используется одно и то же имя переменной, измените имя одной из переменных. Это позволит избежать путаницы при удалении кванторов. Например, переименован в .
  3. Сколемизировать высказывание
    1. Переместить квантификаторы наружу: несколько раз заменить на ; заменить ; _ заменить ; _ заменить . _ Эти замены сохраняют эквивалентность, поскольку предыдущий шаг стандартизации переменных гарантировал, что это не произойдет в . После этих замен квантификатор может встречаться только в начальном префиксе формулы, но никогда внутри , или .
    2. Повторно замените на , где — новый символ -арной функции, так называемая « функция Скулема ». Это единственный шаг, который сохраняет только выполнимость, а не эквивалентность. Он устраняет все экзистенциальные кванторы.
  4. Отбросьте все кванторы универсальности.
  5. Распределите OR внутри AND: многократно замените на .

Пример

Например, формула «Любой, кто любит всех животных, в свою очередь любим кем-то» преобразуется в CNF (а затем в форму предложения в последней строке) следующим образом (выделение редексов правил замены в ):

Неформально функцию Скулема можно рассматривать как выдающую человека, которого любят, и одновременно выдающую животное (если оно есть), которое не любит. Третья последняя строка снизу читается как « не любит животное , или его любят » .

Вторая последняя строка сверху — это CNF.

Смотрите также

Примечания

  1. ^ Однако они находятся в отрицательной нормальной форме .
  2. ^ аб Хаусон 2005, стр. 46.
  3. ^ abc см. Дизъюнктивную нормальную форму # Преобразование в DNF
  4. ^ максимальное количество союзов для
  5. ^ максимальное количество литералов для
  6. ^ ab = (( NOT (p AND q)) IFF (( NOT r) NAND (p XOR q)))
  7. ^ Цейтин 1968.
  8. ^ Джексон и Шеридан 2004.
  9. ^
  10. ^ лайк
  11. ^ ab Предполагается, что повторы и вариации [10] на основе коммутативности и ассоциативности и не встречаются.
  12. ^ так как одним из способов проверки КНФ на выполнимость является преобразование ее в ДНФ , выполнимость которой можно проверить за линейное время
  13. ^ максимальное количество дизъюнкций максимальное количество литералов
  14. ^ Рассел и Норвиг 2010, стр. 345–347, 9.5.1 Конъюнктивная нормальная форма для логики первого порядка.

Рекомендации

Внешние ссылки