4.7.2. Развертка гиперкуба на плоскости. Карта Карно
Еще более удобной формой представления булева пространства является двумерная таблица, которую принято называть картой Карно. Карта Карно имеет ту же структуру, что и развертка гиперкуба на плоскости. Каждая ее клетка соответствует элементу булева пространства. Булеву функцию можно задать расположением нулей и единиц в клетках в соответствии с теми значениями, которые принимает функция на соответствующих элементах булева пространства. Другим способом задания булевой функции на карте Карно является разметка клеток, соответствующих элементам множества Мf1. При этом клетки, соответствующие элементам множества Мf0, остаются пустыми. Оба способа представлены на рис. 4.3, где показан пример задания функции f (х1, х2, х3) = х1 х2 х1х2 х3. Коды строк и столбцов, из которых составляются коды клеток, представлены отрезками прямых. Отрезок вертикальной прямой возле нижней строки показывает, что переменная х1 в коде этой строки имеет значение 1, а его отсутствие у верхней строки говорит, что в ее коде х1 = 0. Аналогично горизонтальные отрезки показывают значения переменных х2 и х3 в кодах столбцов.
х2х3 х2х3
-
0
0
0
1
0
1
1
0
х1х1
Рис. 4.3. Задание булевой функции с помощью карты Карно
Удобство работы с картами Карно обеспечивается применением кода Грея для кодирования ее строк и столбцов.
Пусть надо закодировать в коде Грея последовательность некоторых объектов, число которых N. Коды этих объектов, так же как и коды в виде двоичных чисел, являются булевыми векторами. Длина кода п должна быть такой, чтобы выполнялось N 2п, или п = log2N, где а – ближайшее к а сверху целое число. Первому объекту присваивается код, состоящий только из нулей – 0 0 … 0. Далее коды определяются по следующему правилу.
Для получения следующего кода берется последний код и в нем меняется значение той самой правой компоненты, изменение значения которой приводит к новому коду.
Коды соседних в последовательности объектов оказываются, таким образом, отличающимися только значением одной компоненты.
Другой способ построения кода Грея заключается в следующем. Сначала берется последовательность из двух однокомпонентных кодов: (0), (1). Приписав к этой последовательности те же коды в обратном порядке, получим (0), (1), (1), (0). Добавляем слева 0 к элементам исходной последовательности и 1 – к приписанной. Получим (0 0), (0 1), (1 1), (1 0).
Благодаря коду Грея, два соседних элемента булева пространства или два соседних интервала расположены на карте Карно симметрично некоторой оси, т. е. отношение соседства элементов булева пространства представляется отношением симметрии в карте Карно. На рис. 4.4 показана шестимерная карта Карно с осями симметрии. Оси симметрии проходят в местах изменения значений переменных в кодах строк и столбцов. Каждая ось имеет свою зону симметрии, ширина которой определяется рангом оси.
Оси, связанной с переменной, наиболее часто меняющей свое значение а последовательности кодов строк (или столбцов), придается ранг 1. Если ось связана с переменной, которая меняет свое значение в два раза меньше, ей приписывается ранг 2, если в четыре раза меньше, – ранг 3 и т. д. Ширина оси симметрии ранга k равна 2k (рис. 4.4).
Рис. 4.4. Зоны симметрии карты Карно
По карте Карно легко построить упрощенную ДНФ функции, которая задана с помощью этой карты. Для этого надо выделить интервалы, на которых функция принимает значение 1. На карте Карно они представлены единичными областями, симметричными относительно некоторых осей. Каждый интервал должен быть максимальным, т. е. не быть собственным подмножеством другого интервала. Элементарная конъюнкция, соответствующая такому интервалу, не содержит переменных, с которыми связаны данные оси. Если на всем интервале некоторая переменная х имеет значение 0, то она берется с отрицанием, если 1, то без отрицания.
Рекомендуется в первую очередь выделять те максимальные интервалы, где имеется элемент, для которого данный максимальный интервал является единственным, его содержащим. Такие интервалы называются обязательными, а соответствующие элементы – определяющими.
Если пользоваться «жадным» способом, т. е. стараться покрыть одним интервалом как можно большее число элементов, то в полученной ДНФ может оказаться избыточная элементарная конъюнкция, как, например, для функции f(x1 x2 x3 x4) = x1x2 x3 x1 x2 x4 x1 x2 x3 x1x2 x4, представленной картой Карно на рис. 4.5. Самый большой интервал, представленный конъюнкцией х3 х4, покрывается остальными интервалами, поэтому является избыточным.
Примером получения упрощенной ДНФ является получение ее для функции, представленной картой Карно на рис. 4.6, где определяющие элементы отмечены кружками. ДНФ этой функции имеет вид
х2х3 х4х6 х1 х3х4 х5 х2 х3х4 х5 х2 х3 х5 х6 х1 х3х4 х6 х1 х2х3 х5х6
Эта ДНФ является минимальной, поскольку из шести интервалов, покрывающих множество Мf1, пять являются обязательными.
х3х4
-
х1х2
Рис. 4.5. Область Мf1с избыточным максимальным интервалом
х4х5х6
-
х1х2х3
Рис. 4.6. Задание булевой функции с помощью карты Карно.
Кружками отмечены определяющие элементы
- Литература
- Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- 1.2.Операции над множествами
- 1.3. Булева алгебра множеств
- 1.4. Разбиения и покрытия
- 2. Отношения бинарные и n-арные
- 2.1. Декартово произведение
- 2.2. Бинарные отношения (соответствия)
- 2.3. Операции над бинарными отношениями
- 2.4. Функциональные отношения
- 2.5. Бинарные отношения на множестве
- 2.6. Алгебраические системы
- 3. Основные понятия теории графов
- 3.1. Абстрактный граф
- 3.2. Графическое представление бинарного отношения
- Множеств а и в
- 3.3. Матричные представления графа
- 3.4. Части графа
- 3.5. Достижимость и связность
- 3.6. Доминирующие множества графа
- 3.7. Независимые множества графа
- 3.8. Раскраска графа
- 3.9.Планарность графов
- 3.10. Инварианты графов
- 4. Булевы функции
- 4.1. Способы задания булевой функции
- 4.2. Элементарные булевы функции и алгебраические формы
- 4.3. Интерпретации булевой алгебры
- 4.4. Нормальные формы булевых функций
- 4.4.1. Дизъюнктивные нормальные формы
- 4.4.2. Конъюнктивные нормальные формы
- 4.5 Полнота и замкнутость системы логических функций
- 4.6. Локальные упрощения днф
- 4.6.1. Удаление избыточных элементарных конъюнкций
- 4.6.2. Удаление избыточных литералов
- 4.7. Графическое представление булева пространства и булевых функций
- 4.7.1. Булев гиперкуб
- 4.7.2. Развертка гиперкуба на плоскости. Карта Карно
- 4.8. Минимизация днф
- 4.8.1. Метод Квайна-МакКласки
- 4.8.2. Метод Блейка-Порецкого
- 4.8.3. Визуально-матричный метод минимизации
- 5. Элементы математической логики
- 5.1 Алгебра высказываний
- Всякое высказывание логично следует из самого себя.
- 2. Закон противоречия:
- Если из а следует b, а b ложно, то а тоже ложно.
- 5.2. Логические отношения
- 5.3.Проверка правильности рассуждений
- 5.4. Решение логических задач методом характеристического уравнения
- 5.6. Кванторы
- 5.7 Эквивалентные соотношения. Префиксная нормальная форма
- 6. Основы теории алгоритмов
- 6.1. Интуитивное понятие об алгоритме
- 6.2. Три типа алгоритмических моделей
- 6.3. Кризис теории множеств антиномии. Выводы из антиномий
- 6.4. Машины Тьюринга как модели алгоритмов
- 6.5. Алгоритмы решения некоторых задач теории графов на графах
- 7. Конечный автомат и его описание.
- 7.2. Представления автомата
- 7.3. Связь между моделями Мили и Мура
- 7.4. Автомат с абстрактным состоянием. Булев автомат
- 7.5. Понятие о регулярных выражениях алгебры событий.
- 7.6. Задачи абстрактной теории конечных автоматов
- 8. Комбинаторные задачи и методы комбинаторного поиска
- 8.1. Задачи подсчета числа комбинаторных решений
- 8.2. Особенности оптимизационных комбинаторных задач
- 8.3. Вычислительная сложность
- 8.4. Методы комбинаторного поиска
- 8.5. Задача о кратчайшем покрытии и методы ее решения
- 8.5.1. Постановка задачи
- 8.5.2. Приближенные методы решения задачи
- 8.5.3. Точный метод
- Вопросы к зачету
- 28. Нормальные формы булевых функций. Дизъюнктивные нормальные формы
- 44. Эквивалентные соотношения. Префиксная нормальная форма
- Практический раздел Контрольная работа Указания по выбору варианта
- Контрольное задание №1. Используя диаграммы Эйлера-Венна, решить задачу
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №2. Получить сднф, скнф, используя таблицу истинности. Построить днф, кнф, упростив выражение.
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №3. Упростить схему (рис. 2)
- Методические указания
- Задачи для самостоятельного решения
- Задачи для самостоятельного решения
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №6. Найти инварианты неориентированного графа, заданного матрицей смежности
- Методические указания
- Задачи для самостоятельного решения