Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_по_ДМ_2часть.doc
Скачиваний:
84
Добавлен:
17.12.2018
Размер:
1.72 Mб
Скачать
    1. Геометрическое представление функций алгебры логики

При решении задачи минимизации булевых функций часто используют алгоритмы, основанные на геометрическом представлении функций алгебры логики. Пусть En – обозначает множество всех вершин n – мерного единичного куба. Каждой булевой функции f(x1x2,…, xn) взаимно-однозначно соответствует подмножество Nf  En таких вершин  En , что f()=1, где =(12,…,n) и i  {0, 1}.

Пример:

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

Таблица 24

П усть функция трех переменных 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,…,srar+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. И соответствующая ДНФ равна .

В рассматриваемом примере можно указать и другие покрытия Nf, составленные из интервалов 3–го ранга (вершин куба) и интервалов 2–го ранга (ребер), или состоящие только из интервалов 2–го ранга, но отличные от покрытий, приведенных в пунктах в) и г). Среди всех покрытий Nf – покрытия 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.

П окрытия в) и г) из предыдущего примера являются неприводимыми для функции, заданной таблицей 24, а соответствующие им ДНФ – тупиковыми. Графическое изображение покрытий в) и г) представлено на рис. 3 и 4 соответственно.

Другие неприводимые покрытия для той же функции и их графические изображения приведены ниже.

На рис. 5 представлено неприводимое покрытие:

Nf={(0,1,0),(0,1,1)}{(0,1,0),(1,1,0)}{(0,0,1),(1,0,1)}

{(1,0,0),(1,0,1)}. Соответствующая ТДНФ равна

На рис. 6 представлено неприводимое покрытие:

Nf={(0,1,0),(1,1,0)}{(1,0,0),(1,1,0)}{(0,0,1),(0,1,1)}

{(0,0,1),(1,0,1)}. Соответствующая ТДНФ равна

На рис. 7 представлено неприводимое покрытие:

Nf={(0,1,0),(0,1,1)}{(1,0,0),(1,1,0)}{(0,0,1),(1,0,1)}

Соответствующая ТДНФ равна . Эта ДНФ является также и минимальной.

Ввиду того, что минимальные ДНФ содержатся среди тупиковых, а тупиковые получаются из сокращенной ДНФ, то построение СокрДНФ играет важную роль в решении задачи минимизации булевых функций.