Формулы х и будем называть литералами, т.е. литерал – это или х, или .
Если в ДНФ каждое элементарное произведение содержит все элементарные высказывания, но только в виде единственного литерала, то ДНФ называется совершенной дизъюнктивной нормальной формой (СДНФ).
Например: =pqr r является ДНФ, но не является СДНФ, т.к. во второе элементарно произведение не входит ни р, ни .
Формула = pqr r – СДНФ.
Формула = pqr rq – не СДНФ, т.к. во втором элементарном произведении содержится два литерала.
Теорема. Любаяформула, отличная от 0, представима в виде СДНФ.
Доказательство:
Пусть Ф – формула, содержащая n литералов. Пусть ДНФ содержит элементарное произведение без литерала . = , - литералы. Введем дизъюнкцию , которая равна 1. Получим = ( )=(по первому закону дистрибутивности)= .
Теперь каждое из элементарных произведений содержит все литералы. Поступая аналогично с другими элементарными произведениями, и, заменяя р нулем, получим СДНФ.
Что и требовалось доказать.
Пример 1.
Пусть = pqr q – ДНФ.
Приведем к СДНФ. Добавим 1 в виде дизъюнкции r . Получим =pqr q (r ) pqr qr q - СДНФ.
Если каждая элементарная сумма КНФ формулы содержит все литералы по одному разу, то такая форма называется совершенной конъюнктивной нормальной формой (СКНФ).
Теорема. Любая формула может быть приведена к СКНФ.
Доказательство:
Если элементарная сумма не содержит литерал , то можно в нее ввести конъюнкцию и воспользоваться вторым законом дистрибутивности.
Пример 2. Пусть =(p q r) ( q) – КНФ.
Приведем к СКНФ. Добавим 0 в виде r . Получим
=(p q r) ( q r ) (p q r) ( q r) ( q )
это – СКНФ.
Восстановление формул.
Каждой формуле соответствует таблица истинности, следовательно, каждой таблице истинности соответствует некоторая формула. Возникает задача - для заданной таблицы истинности восстановить формулу, которой она соответствует. Этого можно достичь двумя способами:
|
С помощью СКНФ или с помощью ДНФ.
1. СКНФ.
В таблице истинности выделяются строки, в которых формула ложна. Каждой такой строке будет соответствовать единственная элементарная сумма КНФ. В эту сумму высказывание истинное будет входить с отрицанием, а высказывание, которое ложно - без отрицания. Это объясняется тем, что элементарная сумма должна быть ложной, а если в нее будут входить истинное высказывание, то она ложной не будет. Составляя СКНФ из этих строк, мы получим исходную формулу.
Пример: дана таблица
р | q | r | Ф | |
Так как во 2-ой строке функция ложна, то должна быть ложна элементарная сумма. А элементарная сумма ложна тогда, когда каждый ее член равен 0.
Т. к. р=1, =0; и в дизъюнкцию должно входить .
Т. к. q=1, =0; и в дизъюнкцию должно входить .
r=0- без отрицания.
Получим: r.
Аналогично
Для 4-ой строки: р
Для 7-ой строки: . Тогда
Ф=( r)(р )( ).
2. СДНФ.
В таблице истинности выделяются строки, в которых формула истинна. Каждой такой строке поставим в соответствие элементарное произведение, которое должно быть истинно. В это произведение истинные высказывания входят без отрицания, а ложные - с отрицанием. Затем составляется дизъюнкция элементарных произведений.
|
Для нашего примера:
Ф = рqr р r р q