Дискретная математика

учебное пособие

3.10.2 Бинарные диаграммы решений (БДР)

Бинарная диаграмма решений (Binary Decision Diagrams, BDD) - это граф, являющийся модификацией семантического дерева. В БДР узлы с одним и тем же значением функции объединены. Если на каждом уровне БДР все вершины имеют одну и ту же метку (одинаковые переменные), то такая БДР называется упорядоченной (в англоязычной литературе такое представление называется Ordinary Binary Decision Diagrams, или сокращенно OBDD). Будем называть такое представление УБДР. Вершины УБДР расположены по уровням, каждому уровню соответствует одна переменная, которая помечает вершины, находящиеся на этом уровне. Из каждой вершины выходят два ребра: одно соответствует нулевому значению соответствующей переменной (будем его изображать штриховой линией), а другое - единичному значению этой переменной (оно изображается сплошной линией).

На рис. 4 показаны все четыре формы представления функции .

Бинарные диаграммы решений используются как компактная форма представления булевой функции. Такое представление полезно во многих случаях, например, когда нужно многократно вычислять значения функции при различных наборах значений ее аргументов. Для того чтобы получить значение функции f, например, на языке С, вместо хранения громоздкой таблицы истинности можно вычислить оператор: f=q? (r? 0:1): (р? 0:1), который построен на основании БДР (см. рис. 4). В этом примере использование УБДР позволяет вычислить значение булевой функции, выполнив всего две операции, в то время как при ее вычислении по аналитическому представлению требуется не менее 5 операций.

Рис. 4. Четыре формы представления двоичной функции

f (p, q, r)

Таблица истинности

Семантическое дерево

Бинарная диаграмма решений

p

q

r

f

0

0

0

1

0

0

1

1

0

1

0

1

0

1

1

0

1

0

0

0

1

0

1

0

1

1

0

1

1

1

1

0

Сложность представления функции с помощью УБДР существенно зависит от порядка переменных. Так, например, УБДР для иного порядка переменных, чем на рис. 4, содержит четыре вершины, а не три (рис. 5). Интересной проблемой теоретической информатики является нахождение алгоритма, дающего оптимальный порядок переменных булевой функции с точки зрения представления этой функции упорядоченной БДР.

Рис. 5. УБДР для функции с порядком переменных [p, q, r]

3.11 Построение логических схем

При синтезе логических схем применяют элементы с одним и несколькими входами. Условия функционирования таких элементов определяются переключательными функциями одной или нескольких переменных.

Входные и выходные сигналы логических схем зависят от времени (одни из них в некоторый момент времени равны 1, в другие моменты времени 0). Логические функции, описывающие работу таких схем, называют переменными. Используют также схемы, для которых во все моменты времени сигналы равны либо 1, либо 0. Логические функции, описывающие работу этих схем, называют постоянными.

Существует только четыре различные переключательные функции одной переменной. Как видно из таблицы 14, только две функции не зависят от переменной А (в этих случаях переменная А фиктивна).

Таблица 14

Х

А

Условное обозначение

Название функции

0 1

X0=f0 (A)

X1=f1 (A)

X2=f2 (A)

X3=f3 (A)

0 0

0 1

1 0

1 1

0

A

1

Константа 0

Переменная А

Инверсия А

Константа 1

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

На рис. 6, 7 приведены обозначения элементов, реализующих некоторые переключательные функции двух переменных.

Каждой элементарной логической операции можно поставить в соответствие элементарную логическую схему или вентиль. На входе и выходе вентиля мы имеем логические сигналы двух видов, что можно ассоциировать с логическим 0 или логической 1.

1. Элемент «И» 2. Элемент «ИЛИ» 3. Элемент «НЕ»

F=x1•x2 F=x1x2 F=

Рис. 6. Символическое обозначение вентилей

а) б) в)

г) д) е)

Рис. 7. Условные обозначения переключательных функций двух переменных: а - элемент Шеффера; б - элемент Пирса; в-импликатор; г - запрет; д - равнозначность; е - сложение по модулю 2

Делись добром ;)