logo search
практикум по мат

2.1.5. Совершенные дизъюнктивные и конъюнктивные нормальные формы

Пусть 1,..., хn)— набор логических переменных,Δ=(δ1,…,δn) — набор нулей и единиц.Конституентой единицы набораΔназывается конъюнктК1(δ1,…,δn)=x1δ1x2δ2xnδn.Конституентой нуля набора Δ называется дизъюнктК0(δ1,…,δn)=x11-δ1x21-δ2xn1-δn.

Отметим, что K1(δ1,δ2,…,δn)=1 (K0(δ1,δ2,…,δn)=0)тогда и только тогда, когдаx1=δ1, x2=δ2,…, xn=δn.

Совершенной ДНФ называется дизъюнкция некоторых конституент единицы, среди которых нет одинаковых,совершенной КНФ называется конъюнкция некоторых конституент нуля, среди которых нет одинаковых. Таким образом, СДНФ (СКНФ) есть ДНФ (КНФ), в которой в каждый конъюнкт (дизъюнкт) каждая переменнаяхiиз набора1,...,хп} входит ровно один раз, причем входит либо самахi, либо ее отрицание¬xi.

Пример 12. Формула x1¬x2x3 есть конституента единицы K1(1,0,1), формула xy¬z есть конституента нуля K0(0,0,1), формула (x1¬x2)x1x2) – СДНФ, формула (xy¬z)x¬yz)xyz) – СКНФ, а формула (x1¬x2x3)x1x2x3)(x1¬x2x3) не является СДНФ.

Теорема 3. Для любой не тождественно ложной (не тождественно истинной) формулыφ АВ существует единственая СДНФ (СКНФ)ψАВ такая, чтоφψ.

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

Опишем алгоритм приведения формулы к СДНФ.

  1. Приводим данную формулу к ДНФ.

  2. Преобразовываем ее конъюнкты в конституенты единицы с помощью следующих действий:

а) если в конъюнкт входит некоторая переменная вместе со своим отрицанием, то мы удаляем этот конъюнкт из ДНФ;

б) если в конъюнкт одна и та же литера xδ входит несколько раз, то удаляем все литеры хδ, кроме одной;

в) если в конъюнкт x1δ1xkδk не входит переменная у, то этот конъюнкт заменяем на эквивалентную формулу (x1δ1xkδky)∨(x1δ1xkδk¬y);

г) если в полученной ДНФ имеется несколько одинаковых конституент единицы, то оставляем только одну из них.

В результате получается СДНФ.

Пример 13. Найти СДНФ для ДНФ φ(x¬x)x(yzy).

Решение. Имеем φx(yz)≡(xy)(x¬y)(xyz)xyz)≡

(xyz)(xy¬z)(x¬yz)(x¬y¬z)(xyz)xyz)≡

(xyz)(xy¬z)(x¬yz)(x¬y¬z)xyz).

Описание алгоритма приведения формулы к СКНФ аналогично вышеизложенному описанию алгоритма приведения формулы к СДНФ и оставляется читателю в качестве упражнения.