Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GED / DM3.DOC
Скачиваний:
110
Добавлен:
11.05.2015
Размер:
2.46 Mб
Скачать

Разложение Шеннона Декомпозиция булевых функций

Рассмотрим разложение булевой функции f(x1, x2,…, xn) по k переменным (x1,…, xk) – разложение Шеннона.

Теорема 1. Любая функция f(x1, x2,…, xn), не равная тождественно нулю, представлена в виде разложения Шеннона.

Заметим, что если xi = δi, для i =. Выберем наборδ1, δ2,…, δk и положим, что xi = δi, i = 1,k. Тогда левая часть будет равна:

f(x1, x2,…, xk, xk+1, …, xn) = f(δ1,…, δk, xk+1, …, xn)

а правая:

Здесь разбиваются на единичные и нулевые наборы. Согласно закону а0 = а, получаем, что левая и правая части формул равны при любой подстановке переменных х1, х2,…,хk.

Теорема2. Любая булева функция может быть представлена формулой, являющейся суперпозицией , , ¬.

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

1) В начале докажем для f=1 или f=0.

f(x1, x2,…, xn) = 1 = xi  xi;

f(x1, x2,…, xn) = 0 = xi  xi;

2) Докажем для функции не равной константе

f(x1, x2,…, xn) разложим по n переменным.

Получим

Это совершенная ДНФ. Из этой формулы следует способ построения СДНФ.

Заметим, что может быть разложена

(в булевой алгебре справедлив принцип двойственности)

Согласно закону двойного отрицания

(1)

Таким образом, любая булева функция f(x1, x2,…, xn), не равная тождественно единице представлена в виде выражения 1.

Покажем связь между разложением Шеннона и таблицами Вейча.

Представим пространство Pn(X) в виде декартова произведения пространств Pk(Xa) и Pg(Xb), Xa  Xb = X, Xa  Xb = , k + g = n:

Pn(X) = Pk(Xa)  Pg(Xb).

Каждой строке таблицы Вейча взаимно однозначно сопоставим точку пространства Pk(Xa), столбцу – точку пространства Pg(Xb) и рассмотрим разложение Шеннона булевой функции

по первым k переменным. Тогда i-строка таблицы Вейча, идентифицируемая конъюнкцией соответствует остаточной функции

Будем называть разложение Шеннона булевой функции f(X) строчным, если разложение осуществляется по переменным, соответствующим строкам таблицы Вейча.

Представление булевой функции картами Карно (Вейча)

Карта Карно – это диаграмма, состоящая из правильно расположенных квадратов, каждый из которых соответствует одной из 2n полных конъюнкций соответствующих функции от n переменных. Значения данной функции f из таблицы истинностей вносят в нужные квадраты. Тогда функция f равна дизъюнкции всех полных конъюнкций , для которых в соответствующих квадратах стоит единица.

Рассмотрим построение карт Карно.

Пусть задана функция от двух переменных. Тогда карта Карно будет выглядеть

x1

00

01

x2

10

11

Чтобы наборы не мешали внутри клеток, их можно вынести за пределы таблицы

x1

0

1

0

x2

1

В карте Карно соседние клетки различаются одной компонентой. Для кодировки используется код Грея. Код Грея получается из обыкновенного весового кода сложением по mod 2. Искомое число вычисляется следующим образом. Берем весовой код в качестве первого слагаемого, в качестве второго слагаемого берем тот же код, но сдвинутый на один разряд вправо. Производим сложение по mod 2. Тогда карта Карно для трех переменных будет выглядеть:

0

0

1

1

x1

0

1

1

0

x2

0

1

x3

Если вместо единиц поставить черту, а нули не писать, тогда эта же карта будет выглядеть следующим образом:

x1

x2

x3

Карты для четырех и пяти переменных представлены ниже.

x1

x2

x3

x4

x1

x2

x3

x4

x5

Необходимо отметить, что карта Карно обладает «зеркальной» симметрией и все соседние компоненты находятся на расстоянии один.

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

x1

x2

x3

x4

F

Наборы

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

1

1

0

0

1

0

0

0

0

1

0

1

1

¬x1 x2 ¬x3 x4

0

1

1

0

1

¬x1 x2 x3 ¬x4

0

1

1

1

1

¬x1 x2 x3 x4

1

0

0

0

0

1

0

0

1

0

1

0

1

0

0

1

0

1

1

0

1

1

0

0

0

1

1

0

1

1

x1 x2 ¬x3 x4

1

1

1

0

0

1

1

1

1

0


x1

x2

·

·

·

·

x3

x4


Зададим функцию в виде ДНФ, представим ее картой Карно.

F(x1 x2 x3 x4) = x1 x2 x4  x1¬x3 x4  x3 ¬x4  x1 x2 ¬x3

x1

x2

·

·

·

·

·

·

·

·

x3

x4


СДНФ выше приведенной функции запишется

F(x1,x2,x3,x4) = x1 x2 x3 x4  x1 x2 ¬x3 x4  x1 x2¬x3¬x4  x1 ¬x2¬x3 x4  ¬x1¬x2 x3¬x4  ¬x1x2 x3¬x4  x1 x2x3¬x4  x1¬ x2x3¬ x4

Соседние файлы в папке GED