- •Министерство образования и науки украины
- •Дискретная математика
- •0915 - “Компьютерная инженерия”
- •Содержание
- •Введение
- •Операции алгебры множеств
- •Теоретические сведения
- •Операция объединение множеств
- •Операция пересечение множеств
- •Операция разность множеств
- •Операция симметрическая разность множеств
- •Универсум
- •Дополнение множества
- •Множество всех подмножеств (булеан)
- •Логические функции и реляционные операторы
- •Основные орпределения
- •Теоретические сведения
- •Табличный способ задания логической функции
- •Матричный способ представления
- •Графический способ представления
- •Аналитический способ представления
- •Переход от табличной формы к аналитической
- •Минимизация функций методом Квайна – Мак-Класки
- •Минимизация логических функций методом Петрика
- •Переход от алгебры Буля к алгебре Жегалкина
- •Реляционный оператор Select (выборка)
- •Реляционный оператор Project (проекция)
- •Алгоритмы на графах
- •Теоретические сведения
- •Задача о кратчайшем пути
- •Алгоритм Дейкстры нахождения кратчайшего пути в графе
- •Пример решения задачи нахождения кратчайшего пути
- •Задача нахождения наибольшего потока
- •Алгоритм Форда и Фалкерсона нахождения максимального потока транспортной сети
- •Пример нахождения максимального потока
- •Транспортная задача по критерию стоимости
- •Алгоритм метода частичных потоков
- •Пример решения транспортной задачи по критерию стоимости
- •Алгоритм Флёри нахождения эйлерова цикла
- •Пример решения задачи о коммивояжёре
- •Алгоритм Краскала нахождения остова минимального веса
- •Кодирование информации
- •6. Исправление ошибок в линейном систематическом коде.
- •7. Исправление ошибок в коде Хэмминга.
- •8. Исправление ошибок в циклическом коде.
- •Основные определения
- •Теоретические сведения
- •Построение онк по методике Шеннона-Фано
- •Построение онк по методике Хаффмена
- •Построение линейного систематического кода
- •Исправление ошибок в линейном систематическом коде
- •Построение кода Хємминга
- •Исправление ошибок в коде Хэмминга
- •Построение циклического кода
- •Исправление ошибок в циклическом коде
- •Алгоритмы теории чисел
- •Теоретические сведения
- •Вычисление степени числа а по модулю n
- •Алгоритм Евклида для нахождения наибольшего общего делителя
- •Вычисление обратных величин
- •Основные способы нахождения обратных величин
- •Расширенный алгоритм Евклида
- •Китайская теорема об остатках
Аналитический способ представления
Для этого нужно ввести множество функций, а также правила зависимости функций от набора переменных, т.е. формулы – аналитические выражения на основе операций булевой алгебры.
Переход от табличной формы к аналитической
Всякую логическую функцию можно представить в виде СДНФ и СКНФ. Причем у каждой булевой функции может быть только по одной СДНФ и СКНФ.
Таблица 2.4 – Функция 3 – х переменных
х1 х2 х3 |
F |
конституента 1 |
конституента 0 |
0 0 0 |
0 |
|
х1 х2 х3 |
0 0 1 |
1 |
х1 х2 х3 |
|
0 1 0 |
1 |
х1 х2 х3 |
|
0 1 1 |
0 |
|
х1 х2 х3 |
1 0 0 |
0 |
|
х1 х2 х3 |
1 0 1 |
1 |
х1 х2 х3 |
|
1 1 0 |
1 |
х1 х2 х3 |
|
1 1 1 |
0 |
|
х1 х2 х3 |
Отсюда переходим к аналитическим выражениям логической функции:
СДНФ: F = х1 х2 х3 х1 х2 х3 х1 х2 х3 х1 х2 х3,
СКНФ: F = (х1 х2 х3) (х1 х2 х3) ( х1 х2 х3) ( х1 х2 х3).
Примечание: функция, для которой не существует СДНФ – константа 0, функция, для которой не существует СКНФ – константа 1.
Минимизация функций методом Квайна – Мак-Класки
Мак-Класки формализовал метод минимизации Квайна на первом этапе – этапе нахождения простых импликант. Алгоритм метода следующий:
Все конституенты единицы из СДНФ булевой функции записываются их двоичными номерами.
Эти номера разбиваются на непересекающиеся группы по числу единиц, имеющихся в их двоичной записи: в i – й группе будут номера i – м числом единиц.
Производится склеивание между номерами по следующим правилам:
склеиваются номера соседних групп, т.к. они отличаются только одним разрядом;
склеиваемые номера отмечаются (зачеркиваются);
каждый номер может участвовать в склейке произвольное число раз;
выпадающие разряды заменяются прочерками.
Со всех групп выбираем импликанты, оставшиеся после склейки. Они и образуют сокращенную ДНФ.
Второй этап – нахождение минимальной ДНФ производится по импликантной матрице Квайна.
Пример: минимизировать следующую логическую функцию:
F (x1, x2,, x3, x4) = (1, 4, 5, 6, 7, 8, 9, 12, 13).
Первый этап
Записываем номера конституент единицы: 0001, 0100, 0101, 0110, 0111, 1000, 1001, 1100, 1101.
Группируем их по числу единиц:
Таблица 2.5 – Группы номеров по числу единиц
0001, 0100, 1000 |
0101, 0110, 1001, 1100 |
0111, 1101 |
3. Производим склейки номеров. Результат заносим в новую таблицу:
Таблица 2.6 – Первая склейка номеров
|
|
|
Таблица 2.7 – Результаты первой склейки
0_01, _001, 100_, 1_00, 010_, 01_0, _100 |
1_10, _101, 011_, 1_01, 110_ |
4. Склеиваем номера соседних групп в таблице II.13.4. Результат заносим в новую таблицу. Склейке подлежат номера, в которых имеется прочерк в одном и том же разряде.
Таблица 2.8 – Вторая склейка
|
|
Таблица 2.9 – Результаты второй склейки
_ _ 01, |
5. Со всех таблиц выбираем импликанты, которые не участвовали в склейках и все, что осталось после склеек. Убираем повторяющиеся импликанты.
6. Записываем сокращенную ДНФ:
F = х3 х4 х1 х3 х1 х2 х2 х3 .
Второй этап
Нахождение минимальной ДНФ производим по импликантной матрице Квайна.
Таблица 2.10 – Импликантная матрица Квайна
|
0001 |
0100 |
0101 |
0110 |
0111 |
1000 |
1 |
1100 |
1101 |
_ _01 |
|
|
|
|
|
|
|
|
|
1_0_ |
|
|
|
|
|
|
|
|
|
01_ _ |
|
|
|
|
|
|
|
|
|
_10_ |
|
|
|
|
|
|
|
|
|
Т.о. простая импликанта х2 х3 - лишняя.
Отсюда минимальная ДНФ нашей функции:
F = х3 х4 х1 х3 х1 х2.

001