2.Аналитическое построение сокращенной днф
Сокращенная ДНФ обладает тем свойством, что записывается единственным образом для каждой булевой функции. Кроме того, любая ТДНФ, а следовательно и любая МДНФ, получается из сокращенной ДНФ (СокрДНФ) путем удаления из нее некоторых элементарных конъюнкций.
Для построения СокрДНФ обычно используется задание функции в виде СДНФ или произвольной ДНФ. Наиболее универсальным методом перехода к СокрДНФ является выполнение над исходной ДНФ преобразований вида:
а) A AB = A – поглощение, где A и B – элементарные конъюнкции;
б)
x
A
B
= x
A
B
AB
– склеивание;
или x
A
A
= A
– полное склеивание;
или x
A
A
= x
A
A
A
– неполное склеивание.
При этом вначале следует выполнить всевозможные попарные склеивания входящих в ДНФ элементарных конъюнкций, а затем поглощения. Далее, если это возможно, преобразования применяют повторно. При этом сложность полученной СокрДНФ может оказаться больше сложности исходной ДНФ.
Примеры:
1) Пусть функция трех переменных f(x, y, z) задана в виде СДНФ:
f(x,
y,
z)
=
![]()
Выполним всевозможные попарные склеивания, т.е. будем склеивать первую конъюнкцию со второй, третьей, четвертой, затем вторую с третьей и четвертой, и наконец, третью с четвертой.
Тогда f(x,
y,
z)
=
![]()
x y = ![]()
Теперь выполняя всевозможные поглощения, получим:
f(x,
y,
z)
=
.
Последняя формула является СокрДНФ.
2) Теперь рассмотрим
функцию трех переменных f(x,
y,
z),
заданную формулой вида ДНФ:
f(x,
y,
z)
=
![]()
При склеивании
первой и второй конъюнкции получим 0,
склеивание всех остальных пар добавит
к исходной ДНФ дополнительные конъюнкции
и тогда: f(x,
y,
z)
=
.
Выполняя поглощение,
получим: f(x,
y,
z)
=
![]()
Теперь, применяя ещё раз склеивание и поглощение, переходим к следующей формуле:
f(x,
y,
z)
= x
.
И, поскольку преобразования больше
невозможны, последняя формула является
СокрДНФ.
3.Геометрическое представление функций алгебры логики
При решении задачи минимизации булевых функций часто используют алгоритмы, основанные на геометрическом представлении функций алгебры логики. Пусть En – обозначает множество всех вершин n – мерного единичного куба. Каждой булевой функции f(x1, x2,…, xn) взаимно-однозначно соответствует подмножество Nf En таких вершин En , что f()=1, где =(1, 2,…,n) и i {0, 1}.
Пример:
Таблица 2
|
x |
y |
z |
f(x,y,z) |
|
0 |
0 |
0 |
0 |
|
0 |
0 |
1 |
1 |
|
0 |
1 |
0 |
1 |
|
0 |
1 |
1 |
1 |
|
1 |
0 |
0 |
1 |
|
1 |
0 |
1 |
1 |
|
1 |
1 |
0 |
1 |
|
1 |
1 |
1 |
0 |
усть
функция трех переменных f(x,
y,
z)
задана таблицей 24.
Изобразим трёхмерный единичный куб и отметим на нем те вершины, на которых функция принимает единичные значения. Множество единичных вершин составляет: Nf ={(0,0,1),(0,1,0),(0,1,1),(1,0,0),(1,0,1),(1,1,0)}
Очевидно, что для каждой функции множество Nf определяется однозначно. И по заданному множеству Nf функция f восстанавливается единственным образом.
Пусть Ki = xi1s1 & xi2s2 &…& xirsr – элементарная конъюнкция ранга r, тогда множество Nki Í En, составленное из таких вершин a=(s1,…,sr, ar+1,…,an), что Ki(a)=1, называется интервалом ранга r или (n-r)–мерной гранью единичного куба En.
Пример:
Рассмотрим E3– трехмерный единичный куб.
а) K
=
.
Тогда NК
= {(0,0,0)} – интервал 3-го ранга или 0-мерная
грань (вершина куба);
б) K
=
.
Тогда NК
= {(0,0,0),(1,0,0)} – интервал 2-го ранга или
одномерная грань (ребро трехмерного
единичного куба);
в) K
=
.
Тогда NК
= {(0,0,0),(0,0,1),(0,1,0),(0,1,1)} – интервал 1-го ранга
или двумерная грань (сторона трехмерного
единичного куба);
Очевидно, что для каждого интервала NК всегда можно написать соответствующую конъюнкцию K, причем единственным образом.
Говорят, что система интервалов {NК1, NК2,…, NКm} образует покрытие множества N Í En, если N = NК1 NК2… NКm. Так как равенства f = K1 Ú K2 Ú…Ú Km и Nf = NК1 NК2… NКm эквивалентны, то задача минимизации булевой функции f равносильна отысканию покрытий, сумма рангов интервалов которых минимальна. Такие покрытия называются минимальными.
Пример:
Для функции, заданной таблицей 24, составим следующие покрытия:
а) Nf
=
{(0,0,1)} {(0,1,0)} {(0,1,1)} {(1,0,0)} {(1,0,1)} {(1,1,0)}
– из интервалов 3-го ранга. Ранг покрытия
составляет 3·6=18.
Этому покрытию соответствует СДНФ
данной функции:
![]()
б) Nf
= {(0,0,1),(0,1,1)} {(0,1,0),(0,1,1)} {(0,1,0),(1,1,0)}
{(1,1,0),(1,0,0)} {(1,0,0),(1,0,1)} {(1,0,1),(0,0,1)}
– из интервалов второго ранга. Ранг
этого покрытия равен 2·6=12.
ДНФ, соответствующая этому покрытию,
равна
.
Как нетрудно заметить, для записи
конъюнкции по интервалу используются
не изменяющиеся на этом интервале
координаты.
в) Nf
= {(0,1,0),(0,1,1)}{(0,0,1),(0,1,1)}{(1,0,0),(1,0,1)}{(1,1,0),(1,0,0)}
– из интервалов второго ранга. Ранг
покрытия равен 2·4=8.
Соответствующая ДНФ:
.
г) Nf
= {(0,0,1),(0,1,1)}{(0,1,0),(1,1,0)}{(1,0,0),(1,0,1)}
– из интервалов 2‑го ранга. Ранг
покрытия равен 2·3=6.
И соответствующая ДНФ равна
.
Интервал NК называется максимальным для функции f, если NК Nf и не существует интервала NК1 такого, что NК NК1 Nf. Конъюнкция K, соответствующая максимальному интервалу NК функции f, называется простой импликантой для f. Удаление любого множителя из простой импликанты приводит к конъюнкции K1 такой, что интервал NК1 не содержится в покрытии Nf.
Покрытие функции f, составленное из всех её максимальных интервалов, называется сокращенным покрытием, а соответствующая ему ДНФ называется сокращенной ДНФ для функции f (СокрДНФ). Поскольку в сокращенное покрытие входят все максимальные интервалы функции, то для каждой функции такое покрытие строится единственным образом, а, следовательно, и СокрДНФ записывается однозначно для каждой функции алгебры логики.
Для функции f(x,y,z) из предыдущего примера максимальными будут все интервалы 2–го ранга (ребра куба), т.к. ни в одно покрытие Nf не входят интервалы 1–го ранга (грани куба), которые могли бы содержать в себе какие–нибудь из этих ребер. Понятно также, что ни один из интервалов 3–го ранга (вершины куба) не будет максимальным для этой функции, т.к. для любого из них можно указать интервал 2–го ранга (ребро) из Nf, включающий в себя данную вершину. Поэтому покрытие, приведенное в пункте б, является сокращенным, а соответствующая ему ДНФ – является СокрДНФ.
Тупиковым ДНФ соответствуют так называемые неприводимые покрытия, которые получаются из сокращенного покрытия путем удаления некоторых максимальных интервалов. При этом никакое собственное подмножество интервалов из неприводимого покрытия уже не будет являться покрытием для функции f.
