Аналитическая запись функций алгебры логики

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

Условимся о ряде обозначений. Введем в рассмотрение "степень" аргумента х, которую будем обозначать хα. Положим, что

Рассмотрим конъюнкцию

(4.16)

Двоичный набор (α1, α2, …, αп) есть набор вида (4.9), и существует ровно 2п различных таких наборов. Таким образом, число различных конъюнкций вида (4.16) также равно 2п.

Сопоставим каждой конъюнкции (4.16) номер, определяемый номером набора (α1, α2, …, αп). Тогда запись

означает дизъюнкцию всех конъюнкций с номерами из множества σ. Введенный нами знак "V" является аналогом знака суммы в математике. Аналогично, запись

означает конъюнкцию всех дизъюнкций с номерами из множества σ. Знак "&" аналогичен знаку произведения.

Прежде всего покажем, что = 1 тогда и только тогда, когда выполняется равенство xi = ai. Это вытекает из рассмотрения следующих четырех возможных случаев:

1)

2)

3)

4)

Таким образом, конъюнкция не обращается в нуль только в том случае, если одновременно выполняются следующие i равенства:

(4.17)

Докажем теперь следующую теорему.

Теорема 3. Любая функция алгебры логики, зависящая от п аргументов (n ≥ 1), может быть представлена в следующем виде:

. (4.18)

Покажем теперь справедливость соотношения (4.18). Для этого докажем, что функции, стоящие в левой и правой частях соотношения (4.18), совпадают на всех наборах значений аргументов. Возьмем произвольный набор (x*1 , x*2 , … x*n), на котором функция f обращается в нуль, и подставим его в правую и левую части (4.18). Тогда слева получим нуль. Для всех конъюнкций, стоящих справа, для которых не выполнено (4.17), можно утверждать, что они равны нулю. Для той же единственной ненулевой конъюнкции, для которой выполнено условие (4.17), f (α1,..., αi, xi+1, ..., хп) = 0. Таким образом, в дизъюнкции, стоящей справа, все конъюнкции нулевые и правая часть (4.18) равна нулю.

Рассмотрим теперь набор (x*1 , x*2 , … x*n), на котором f обращается в единицу, и подставим его в (4.18). При этом слева получим единицу, а справа все конъюнкции, для которых не выполнено (4.17), дадут нуль. Для конъюнкции, удовлетворяющей (4.17), имеем:

f (α1,..., αi, xi+1, ..., хп) = 1

и, следовательно, в дизъюнкции, стоящей в правой части (4.18), будет одна единица. Этого достаточно для обращения в единицу правой части соотношения (4.18). Теорема доказана.

Из теоремы 3, которая дает разложение произвольной функции алгебры логики по любым i аргументам, вытекает следующая важная теорема.

Теорема 4. Любая функция алгебры логики представима в следующем виде:

. (4.19)

Символ " "означает, что дизъюнкция берется только по таким наборам
(α1, α2, …, αп), на которых выполняется равенство f (α1, α2, …, αп)= 1. Для всех функций, зависящих от п аргументов (п ≥ 1), это утверждение следует из теоремы 3. В самом деле, если в (4.18) взять i = n, то в силу доказанной теоремы будем иметь:

.

Функция f (α1, α2, …, αп) есть функция алгебры логики. Следовательно, f (α1, α2, …, αп) может принимать либо значение, равное нулю, либо значение, равное единице. При тех же значениях набора (α1, α2, …, αп), для которых f (α1, α2, …, αп)= 0. Соответствующая конъюнкция:

Учтя это обстоятельство, мы можем записать:

.

Теорема доказана для всех п > 1. Остается еще показать, что в виде соотношения (4.19) можно записать функцию f = 1. Справедливость этого утверждения вытекает из

Теорема полностью доказана.

Представление функции алгебры логики в виде (4.19) мы будем называть дизъюнктивной совершенной нормальной формой этой функции.

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

1) выбрать в таблице задания функции все наборы аргументов, на которых функция обращается в единицу;

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

3) все полученные конъюнкции соединяются между собой знаками дизъюнкции.

Пусть задана функция f (x1, х2, х3) таблицей 4.9.

Таблица 4.9 - Пример задания функции

x1 х2 х3 f (x1, х2, х3) x1 х2 х3 f (x1, х2, х3)

Требуется получить для нее дизъюнктивную совершенную нормальную форму.

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

.

Соединяя эти конъюнкции знаками дизъюнкций, окончательно получаем:

.

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

Теорема 5. Любая функция алгебры логики может быть представлена в следующей форме:

. (4.20)

Символ " " означает, что конъюнкция берется только по тем наборам (α1, α2, …, αп), для которых выполняется равенство:

f = (α1, α2, …, αп) = 0.

Переходим к доказательству соотношения (4.20). В силу теоремы 4 имеем:

или

Как известно, равенство не нарушается, если от обеих его частей взять отрицание:

К правой части теперь можно применить соотношение (4.14):

К конъюнкциям применим формулу де Моргана (4.15):

На тех наборах, для которых f = (α1, α2, …, αп) = 1 соответствующая дизъюнкция

Такие наборы в силу (4.11) на значение конъюнкции не влияют и ими можно пренебречь:

Теорема доказана для всех п ≥ 1. Для функции f, тождественно равной нулю, на основании (4.13) имеем:

Теорема полностью доказана.

Представление функции алгебры логики в виде (4.20) носит название конъюнктивной совершенной нормальной формы (КСНФ).

Из теоремы 5 вытекает алгоритм построения КСНФ:

1) выбрать в таблице задания функции все наборы аргументов, на которых функция обращается в нуль.

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

return false">ссылка скрыта

3) все полученные дизъюнкции соединяются между собой знаками конъюнкций.

Написать КСНФ для функции, заданной таблицей 4.10.

Таблица 4.10 – Таблица состояния функции

x1 x2 x3 f (x1, х2, х3) x1 x2 x3 f (x1, х2, х3)

Логическая функция имеет вид:

.

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