Автор работы: Пользователь скрыл имя, 14 Декабря 2012 в 01:16, доклад
Алгебра логики - предельно важная для цифровых компьютеров тема. И с точки зрения их устройства, схемотехники, и с точки зрения их функционирования и программирования поведения. Действительно, мало-мальски сложное действие невозможно без обратной связи, без анализа условий выполнения. Например, "ЕСЛИ нам хочется пить, ТО мы пьём, ИНАЧЕ мы даже не думаем об этом".
" При проэктировании
цифровых автоматов широко
Определение.
Элементарной конъюнкцией называется
конъюнкция конечного числа различных
между собой булевых переменных, каждая
из которых может иметь или не иметь отрицания.
Определение.
Дизъюнктивной нормальной формой (ДНФ) называется дизъюнкция элементарных
конъюкций.
Определение.
Минимальной дизъюнктивной нормальной
формой булевой функции называется ДНФ,
содержащая наименьшее число букв (по
отношению ко всем другим ДНФ, представляющим
заданную булеву функцию).
Определение.
Булева функция g(x1,...,xn) называется
импликантой булевой функции f(x1,...,xn),
если для любого набора переменных, на
котором g=1, справедливо f=1.
Таблица 4.1 |
||||||||
x3x2x1 |
f |
g1 |
g2 |
g3 |
g4 |
g5 |
g6 |
g7 |
000 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
f = /x1x2x3 v x1x2/x3
v x1x2x3 = g7;
g1 = x1x2x3;
g2 = x1x2/x3;
g3 = x1x2x3 v x1x2/x3
= x1x2 (x3 v x3) = x1x2;
g4 = /x1x2x3;
g5 = /x1x2x3 v x1x2x3
= x2x3;
g6 = /x1x2x3 v x1x2/x3;
Определение.
Импликанта g булевой функции f, являющаяся
элементарной конъюнкцией, называется
простой, если никакая часть импликанты
g не является импликантой функции f.
Из примера видно, что импликанты
g3 = x1x2 и g5
= x2x3 являются простыми импликантами
функции f. Импликанты g1, g2,
g4, g6 не являются простыми,
так как их части являются импликантами
функции f, например g3 является частью
g1. Приведем без доказательства
два утверждения, полезные при получении
минимальной ДНФ.
Перебор всех возможных импликант для булевой функции f из рассмотренного примера дает возможность убедиться, что простых импликант всего две: g3 и g5. Следовательно, сокращенная ДНФ функции f имеет вид
f = g3 v g5 = x1x2 v x2x3.
Как видно из табл. 4.1, импликанты g3, g5 в совокупности
покрывают своими единицами все единицы
функции f. Получение сокращенных ДНФ является
первым этапом отыскания минимальных
форм булевых функций. Как уже отмечалось,
в сокращенную ДНФ входят все простые
импликанты булевой функции. Иногда из
сокращенной ДНФ можно убрать одну или
несколько простых импликант, не нарушая
эквивалентности исходной функции. Такие
простые импликанты назовем лишними. Исключение
лишних простых импликант из сокращенных
ДНФ - второй этап минимизации.
Определение.
Сокращенная ДНФ булевой функции называется тупиковой, если в ней
отсутствуют лишние простые импликанты.
Устранение лишних простых импликант
из сокращенной ДНФ булевой
Утверждение.
Тупиковые ДНФ булевой функции f, содержащие
минимальное число букв, являются минимальными.
Минимальных ДНФ тоже может быть несколько.
Рассмотрим несколько методов
минимизации. Все они практически
различаются лишь на первом этапе -
этапе получения сокращенной
ДНФ. Следует отметить, что, к сожалению,
поиск минимальной ДНФ всегда связан с
некоторым перебором решений. Существуют
методы уменьшения этого перебора, однако
он всегда остается."
"Метод Квайна
основывается на применении
Ах V А/х = Ах V А/х V А,
где А - любое элементарное произведение.
А~х V А = А, ~х E {х; /x}.
Справедливость
обоих соотношений легко
Для доказательства достаточно показать,
что произвольная простая импликанта
р = xi1xi2 ... xin может быть
получена. В самом деле, применяя к р операцию
развертывания (обратную операции склеивания):
A = A (x v /x) = Ax v A/x
по всем недостающим переменным xi^(k+l), ..., Xi^n исходной функции f, получаем совокупность S конституент единицы. При склеивании всех конституент из S получим импликанту р. Последнее очевидно, поскольку операция склеивания обратна операции развертывания. Множество S конституент обязательно присутствует в совершенной ДНФ функции f поскольку р - ее импликанта.
Таблица 4.1.1 |
|
x4x3x2x1 |
f |
0000 |
0 |
Пример. Пусть имеется булева функция,
заданная таблицей истинности (табл. 9.1.1).
Ее СДНФ имеет вид
f = /x1/x2/x3x4 v /x1/x2x3x4 v /x1x2/x3x4 v /x1x2x3x4 v x1x2x3/x4 v x1x2x3x4.
Для удобства изложения пометим
каждую конституенту единицы из СДНФ
функции f каким-либо десятичным номером
(произвольно). Выполняем склеивания.
Конституента 1 склеивается только
с конституентой 2 (по переменной x3)
и с конституентой 3 (по переменной х2),
конституента 2 с конституентой 4 и т. д.
В результате получаем
1 - 2: /x1/x2x4;
1 - 3: /x1/x3x4;
2 - 4: /x1x3x4;
3 - 4: /x1x2x4;
4 - 6: x2x3x4;
5 - 6: x1x2x3.
Заметим, что результатом склеивания
является всегда элементарное произведение,
представляющее собой общую часть
склеиваемых конституент Далее
производим склеивания получаемых элементарных
произведений.
Склеиваются только те произведения, которые содержат одинаковые переменные.
Имеет место два случая склеивания:
/x1/x2x4 v /x1x2x4
= /x1/x2x4 v /x1x2x4
v /x1x4;
/x1/x3x4 v /x1x3x4
= /x1/x3x4 v /x1x3x4
v /x1x4,
с появлением одного и того же элементарного
произведения /x1x4. Дальнейшие склеивания
невозможны. Произведя поглощения (из
полученной ДНФ вычеркиваем все поглощаемые
элементарные произведения), получим сокращенную
ДНФ:
x2x3x4 v x1x2x3 v /x1x4.
Переходим ко второму этапу. Для
получения минимальной ДНФ
Пример (продолжение).
Импликантная матрица имеет вид (табл.
4.1.2).
Таблица 4.1.2 |
||||||
Простые |
Конституенты единицы | |||||
/x1/x2/x3x4 |
/x1/x2x3x4 |
/x1x2/x3x4 |
/x1x2x3x4 |
x1x2x3/x4 |
x1x2x3x4 | |
/x1x4 |
X |
X |
X |
X |
||
x2x3x4 |
X |
X | ||||
x1x2x3 |
Х |
Х |
Как уже отмечалось, простая импликанта
поглощает некоторую конституенту единицы,
если является ее собственной частью.
Соответствующая клетка импликантной
матрицы на пересечении строки (с рассматриваемой
простой импликантой) и столбца (с конституентой
единицы) отмечается крестиком (табл. 9.1.2).
Минимальные ДНФ строятся по импликантной
матрице следующим образом:
Пример (продолжение). Ядром нашей функции являются импликанты x1x2x3; /x1x4. Импликанта x2x3x4 - лишняя, так как ядро накрывает все столбцы импликантной матрицы. Поэтому функция имеет единственную тупиковую и минимальную ДНФ:
f = x1x2x3 v /x1x4
Следует отметить, что число N крестиков
в одной строке всегда является степенью
2. Более того, читатель может легко
убедиться в том, что
N = 2n-k
где k - число букв, содержащихся в
простой импликанте.
Заметим также, что используя различные
соотношения, можно расширить область
применения метода Квайна за пределы совершенной
ДНФ."
"Метод представляет
собой формализованный на
" Метод позволяет
получать сокращенную ДНФ
Ax v B/x = Ax v B/x v AB,
справедливость которой легко доказать. Действительно,
Ax = Ax v ABx; B/x = B/x v AB/x.
Следовательно,
Ах v В/х = Ах v АВх v В/х v АВ/х = Ах V В/х V АВ.
В основу метода положено следующее утверждение: если в произвольной ДНФ булевой функции f произвести все возможные oбобщенные склеивания, а затем выполнить все поглощения, то в результате получится сокращенная ДНФ функции f.
" Метод позволяет быстро получать минимальные ДНФ булевой функции f небольшого числа переменных. В основе метода лежит задание булевых функций диаграммами некоторого специального вида, получившими название диаграмм Вейча. Для булевой функции двух переменных диаграмма Вейча имеет вид (табл. 4.4.1).
Каждая клетка диаграммы соответствует набору переменных булевой функции в ее таблице истинности. В (табл. 4.4.1) это соответствие показано, В клетке диаграммы Вейча ставится единица, если булева функция принимает единичное значение на соответствующем наборе. Нулевые значения булевой функции в диаграмме Вейча не ставятся. Для булевой функции трех переменных диаграмма Вейча имеет следующий вид (табл. 4.4.2).