- •Часть 1
- •Содержание
- •Введение
- •1. Введение в теорию множеств
- •Операции над множествами
- •Диаграммы Эйлера – Венна
- •Понятие алгебры
- •Упражнения
- •2. Отношения
- •Операции над отношениями
- •Свойства бинарных отношений
- •Задачи и упражнения
- •3. Нечеткие множества
- •Операции над нечеткими множествами.
- •Задачи и упражнения
- •Элементарные функции k-значных логик и соотношение между ними
- •Разложение функций k-значных логик в первую и вторую формы
- •Замкнутые классы и полнота в k-значных логиках
- •Задачи и упражнения
- •5. Логика высказываний
- •Тождества в алгебре высказываний
- •Булевы формулы
- •Интерпретации
- •6. Булевы функции
- •Способы задания булевой функции
- •Равносильные преобразования формул
- •Нормальные формулы Совершенные нормальные формулы
- •Разложение Шеннона Декомпозиция булевых функций
- •Представление булевой функции картами Карно (Вейча)
- •Минимизация булевых функций
- •Классы булевых функций
- •7. Комбинаторика Введение
- •8. Кодирование
- •Алфавитное кодирование
- •Кодирование с минимальной избыточностью
- •Помехоустойчивое кодирование
- •Сжатие данных
- •Шифрование
- •Криптография
- •Цифровая подпись
- •9. Графы Определение графа
- •Задание графов
- •Связность графа
- •Эйлеровы и гамильтоновы графы
- •Деревья
- •Понятие метрики графа
- •Цикломатическое число, раскраска
- •Изоморфизм графов
- •Орграфы
- •Сети Петри
- •Контрольная работа №1 (варианты заданий)
- •Контрольная работа № 2.
- •Контрольная работа №3
- •Список литературы
Разложение Шеннона Декомпозиция булевых функций
Рассмотрим разложение булевой функции 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