Основы алгебры логики

СКНФ. Теорема о представлении в виде СКНФ. Построение СКНФ по таблице

СКНФ представляет функцию как конъюнкцию элементарных дизъюнкций, соответствующих наборам переменных, на которых функция принимает значение 0. Построение СКНФ по таблице истинности осуществляется путём выделения строк с нулевым значением функции и записи соответствующих дизъюнкций. Приводятся примеры применения СКНФ в задачах математической логики и проектирования логических схем.

КНФ

Простой дизъюнкцией{ англ. inclusive disjunction } или ** дизъюнктом**{ англ. disjunct } называется дизъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная встречается не более одного раза.

Простая дизъюнкция

  • ** полная**, если в неё каждая переменная (или её отрицание) входит ровно один раз;

  • ** монотонная**, если она не содержит отрицаний переменных.

Конъюнктивная нормальная форма, КНФ{ англ. conjunctive normal form, CNF } нормальная форма, в которой булева функция имеет вид конъюнкции нескольких простых дизъюнктов.

Пример КНФ:f(x,y)=(x∨y)∧(y∨¬z)f(x,y) = (x \lor y) \land (y \lor \neg { z } )

СКНФ

Совершенная конъюнктивная нормальная форма, СКНФ{ англ. perfect conjunctive normal form, PCNF } — это такая КНФ, которая удовлетворяет условиям:

  • в ней нет одинаковых простых дизъюнкций

  • каждая простая дизъюнкция полная

Пример СКНФ:f(x,y,z)=(x∨¬y∨z)∧(x∨y∨¬z)f(x,y,z) = (x \lor \neg { y } \lor z) \land (x\lor y \lor \neg { z } )

**Теорема:**Для любой булевой функции f(x⃗)f(\vec { x } ), не равной тождественной единице, существует СКНФ, ее задающая.

**Доказательство:**Поскольку инверсия функции ¬f(x⃗)\neg { f } (\vec x) равна единице на тех наборах, на которых f(x⃗)f(\vec x) равна нулю, то СДНФ для ¬f(x⃗)\neg { f } (\vec x) можно записать следующим образом:

¬f(x⃗)=⋁_f(xσ_1,xσ_2,...,xσ_n)=0(x_1σ_1∧x_2σ_2∧...∧x_nσ_n)\neg { f } (\vec x) = \bigvee\limits\_ { f(x^ { \sigma\_ { 1 } } , x^ { \sigma\_ { 2 } } , ... ,x^ { \sigma\_ { n } } ) = 0 } (x\_ { 1 } ^ { \sigma\_ { 1 } } \wedge x\_ { 2 } ^ { \sigma\_ { 2 } } \wedge ... \wedge x\_ { n } ^ { \sigma\_ { n } } ),

где σ_i\sigma\_ { i } обозначает наличие или отсутствие отрицание при x_ix\_ { i }

Найдём инверсию левой и правой части выражения:

f(x⃗)=¬(⋁_f(xσ_1,xσ_2,...,xσ_n)=0(x_1σ_1∧x_2σ_2∧...∧x_nσ_n))f(\vec x) = \neg ( { \bigvee\limits\_ { f(x^ { \sigma\_ { 1 } } , x^ { \sigma\_ { 2 } } , ... ,x^ { \sigma\_ { n } } ) = 0 } (x\_ { 1 } ^ { \sigma\_ { 1 } } \wedge x\_ { 2 } ^ { \sigma\_ { 2 } } \wedge ... \wedge x\_ { n } ^ { \sigma\_ { n } } ) } )

Применяя дважды к полученному в правой части выражению правило де Моргана, получаем:

f(x⃗)=⋀_f(xσ_1,xσ_2,…,xσ_n)=0f(\vec x) = \bigwedge \limits\_ { f(x^ { \sigma\_1 } , x^ { \sigma\_2 } , \dots ,x^ { \sigma\_n } ) = 0 }

(¬x_1σ_1∨¬x_2σ_2∨⋯∨¬x_nσ_n)(\neg { x\_1^ { \sigma\_1 } } \vee \neg { x\_2^ { \sigma\_2 } } \vee \dots \vee \neg { x\_n^ { \sigma\_n } } )

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

Алгоритм построения СКНФ по таблице истинности

  • В таблице истинности отмечаем те наборы переменных, на которых значение функции равно 00.

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

  • Все полученные дизъюнкции связываем операциями конъюнкции.

Пример построения СКНФ для медианы

1). В таблице истинности отмечаем те наборы переменных, на которых значение функции равно 00.

x y z ⟨x,y,z⟩\langle x,y,z \rangle
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

2). Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу : если значение некоторой переменной есть 00, то в дизъюнкцию включаем саму переменную, иначе ее отрицание.

x y z ⟨x,y,z⟩\langle x,y,z \rangle
0 0 0 0 (x∨y∨z)( x \lor y \lor z)
0 0 1 0 (x∨y∨¬z)( x \lor y \lor \neg { z } )
0 1 0 0 (x∨¬y∨z)(x \lor \neg { y } \lor z)
0 1 1 1
1 0 0 0 (¬x∨y∨z)(\neg { x } \lor y \lor z)
1 0 1 1
1 1 0 1
1 1 1 1

3). Все полученные дизъюнкции связываем операциями конъюнкции.

⟨x,y,z⟩=(x∨y∨z)∧(¬x∨y∨z)∧(x∨¬y∨z)∧(x∨y∨¬z)\langle x,y,z \rangle = ( x \lor y \lor z) \land (\neg { x } \lor y \lor z) \land (x \lor \neg { y } \lor z) \land ( x \lor y \lor \neg { z } )

Примеры СКНФ для некоторых функций

Стрелка Пирса: x↓y=(¬x∨y)∧(x∨¬y)∧(¬x∨¬y)x \downarrow y = (\neg { x } \lor { y } ) \land ( { x } \lor \neg { y } ) \land (\neg { x } \lor \neg { y } )

Исключающее или: x⊕y⊕z=(¬x∨¬y∨z)∧(¬x∨y∨¬z)∧(x∨¬y∨¬z)∧(x∨y∨z)x \oplus y \oplus z = (\neg { x } \lor \neg { y } \lor z) \land (\neg { x } \lor y \lor \neg { z } ) \land (x \lor \neg { y } \lor \neg { z } ) \land (x \lor y \lor z)

Другие статьи из категории

Похожие статьи

Все статьи →

Основы алгебры логики

Теорема об аналоге СДНФ в Pk

Аналог СДНФ в Pk позволяет однозначно представлять любую функцию k-значной логики через комбинации значений переменных и их отрицаний.…

Основы алгебры логики

Теорема о заведомо полныx системаx

Заведомо полная система функций гарантирует возможность реализации всех возможных отображений в рамках k-значной логики. Для проверки…

Основы алгебры логики

Класс Te . Теорема о замкнутости Te

Класс Te включает все функции, для которых выполнено условие сохранения константы e. Замкнутость класса означает, что любая суперпозиция…

Основы алгебры логики

Лемма о построении множества F[x1,x2]

Множество F[x1,x2] представляет собой набор всех возможных отображений пар значений [x1,x2] в множество значений k-значной логики. Лемма…

Основы алгебры логики

Теорема об алгоритме распознавания полноты

Алгоритм распознавания полноты позволяет определить, можно ли с помощью заданной системы функций выразить любую функцию из Pk. Для этого…

Нужен расчёт?

Пришлите исходные данные — уточним состав работы и ответим по срокам.

Связаться