Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lekcii_dm.doc
Скачиваний:
31
Добавлен:
08.11.2018
Размер:
11.89 Mб
Скачать

Теорема.

Каждая булева функция является суперпозицией следующих функций: отрицания, конъюнкции и дизъюнкции.

Доказательство:

Первое доказательство.

Обозначим множество всех булевых функций через P2. Если данная функция fP2 является константой, равной нулю, то, согласно соотношению 0 = ù (x ù x) или 0 = x ù x, утверждение справедливо. В противном случае, существуют такие наборы (a1, a2,…, an), что f(a1, a2,…, an)=1. Для каждого такого набора (a1, a2,…, an) образуем элементарную конъюнкцию , которая имеет значение 1 только на наборе (a1, a2,…, an). Тогда

f(x1, x2,…, xn) =, (3)

где дизъюнкции берётся по всем таким наборам (a1, a2,…, an), что f(a1, a2,…, an) = 1. Так как правая часть равенства (3) является суперпозицией требуемых функций, то теорема доказана.

Второе доказательство.

Если функция fP2 является константой равной 1, то, согласно 1= x ù x или 1=ù (x ù x), утверждение справедливо. В противном случае, существуют такие наборы (a1, a2,…, an), что f(a1, a2,…, an)  1, или, что то же самое, f(a1, a2,…, an) = 0. Таким образом, функция f(x1, x2,…, xn) может быть представлена в виде

f(x1, x2,…, xn) = , (4)

где конъюнкция берётся по всем таким наборам (a1, a2,…, an), что

f(a1, a2,…, an)=0. Правая часть равенства (4) опять, как и в первом доказательстве, является суперпозицией требуемых функций. Теорема доказана.

Определение.

Правая часть равенства (3) называется совершенной дизъюнктивной нормальной формой (кратко СДНФ) функции f(x1, x2,…, xn).

Замечание.

СДНФ существует только для тех булевых функций, которые не являются константами, равными нулю.

Определение.

Правая часть равенства (4) называется совершенной конъюнктивной нормальной формой (СКНФ) функции f(x1, x2,…, xn).

Замечание.

СКНФ существует только для тех булевых функций, которые не являются константами, равными единице.

Определение.

Конъюнкция всех аргументов функции (с отрицанием и без отрицания) называется полной и обозначается буквой K с соответствующим индексом. Индексом в обозначении служит номер набора или двоичное число, а также соответствующее ему десятичное, полученное при замене каждой переменной xi символом 1, а переменной ù xi – символом 0.

Определение.

Дизъюнкция всех аргументов функции (с отрицанием и без отрицания) называется полной и обозначается (в литературе) буквой D с соответствующим индексом. Индексом служит инверсионный номер набора или двоичное число, а также соответствующее ему десятичное, полученное при замене каждой переменной xi символом 0, а переменной ù xi – символом 1.

Примеры.

1. x1x2 – номер набора –112 = 310, полная конъюнкция обозначается K3.

2. – номер набора – 0102 = 210, полная конъюнкция обозначается K2.

3. x1x2 – номер инверсионного набора – 002 – 010, полная дизъюнкция обозначается D0.

4. – номер инверсионного набора – 1012 – 510, полная дизъюнкция обозначается D5.

Определение.

Полная конъюнкция, принимающая значение 1 только на одном наборе аргументов, соответствующем её индексу, и значение 0 на всех остальных наборах, называется также конституэнтой (образующей) или характеристической функцией единицы.

Определение.

Полная дизъюнкция, принимающая значение 0 только на одном наборе аргументов, соответствующем её индексу, и значение 1 на всех остальных наборах, называется также конституэнтой (образующей) или характеристической функцией нуля.

Замечание.

Значение булевой функции для конкретных значений аргументов удобно обозначить символом с индексом в виде десятичного числа, соответствующего двоичному набору аргумента, например, f(1,1) = 3, f(1,0,1) = 5.

Примеры.

С учётом введённых определений булеву функцию f(x1, x2) можно записать {с учетом разложения в СДНФ или СКНФ} в следующем виде:

.

Замечание.

Приведенный пример показывает, каким образом можно перейти от табличного представления булевой функции к её аналитическому представлению. При табличном представлении функции задаются её значения i для каждого набора аргументов, определяемого индексом i. Так как в силу определения операции конъюнкции имеем 0Ki = 0 и 1Ki = Ki, то для представления функции в виде СДНФ нужно выписать дизъюнкцию всех тех конституэнт единицы Ki, для которых i = 1. Учитывая также, что 0Di=Di и 1Di=1, СКНФ получается как конъюнкция всех тех конституэнт нуля Di, для которых значение функции i равно 0.

    1. Законы двойственности.

Определение.

Учитывая определённую симметрию операций  и  в аксиоматике алгебры Буля логических высказываний и операций, операции  и  называются двойственными.

Определение.

Формулы и * называются двойственными, если одна получается из другой заменой каждой операции на двойственную.

Примеры.

1. двойственна .

2. двойственна .

3. двойственна .

Замечание.

Как для операций, так и для формул отношение двойственности взаимно, то есть если * двойственна , то и, наоборот, двойственна *.

Лемма.

Если формулы (X1, X2,…, Xn) и *(X1, X2,…, Xn) двойственны, а X1, X2,…, Xn – все входящие в них элементарные высказывания, то (X1, X2,…, Xn) равносильна *.

Доказательство:

Доказательство непосредственно следует из законов де Моргана.

Следствие из леммы.

Частным случаем леммы являются следующие соотношения:

; (5)

. (6)

Они являются обобщением законов де Моргана и называются законами Клода Шеннона.

Задание.

Доказать законы Клода Шеннона и лемму.

Теорема (закон двойственности).

Если и равносильны, то и двойственные им формулы *и * также равносильны.

Доказательство:

Пусть (X1, X2,…, Xn) и (X1, X2,…, Xn) – равносильные формулы, а X1, X2,…, Xn – входящие в них элементарные высказывания. Тогда, в силу леммы, *(X1, X2,…, Xn) равносильна , а*(X1, X2,…, Xn) равносильна .

Из равносильности формул (X1, X2,…, Xn) и (X1, X2,…, Xn) следует равносильность формул и , так как в силу определения равносильности (X1, X2,…, Xn) и (X1, X2,…, Xn) принимают одинаковые значения при любых значениях переменных X1, X2,…, Xn, а, следовательно, и при значениях . Следовательно, формулы и также равносильны, далее, в силу леммы формула *(X1, X2,…, Xn) равносильна формуле , а формула *(X1, X2,…, Xn) равносильна формуле . Следовательно, формулы *(X1, X2,…, Xn) и *(X1, X2,…, Xn) равносильны между собой, что и требовалось доказать.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]