Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискретка_Экзамен_Ответы / булевы / 5 способы представления булевых функций.docx
Скачиваний:
146
Добавлен:
11.03.2015
Размер:
106.1 Кб
Скачать

5.10. Графовые способы представления булевых функций

Графовыми представлениями булевых функций являются бинарные деревья и бинарные графы.

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

Рис.5.1. Бинарное дерево булевой функции

Бинарное дерево булевой функции может быть построено исходя из любой рассмотренной ранее формы представления булевой функции. Алгоритм построения бинарного дерева основан на многократном разложении Шеннона булевой функции по одной переменной и заключается в следующем:

1) построить корень дерева и приписать к нему булеву функцию f;

2) выбрать переменную разложения xi, записать её в корень дерева и выполнить разложение Шеннона по этой переменной

Если коэффициент представляет собой константную функцию, то ввести лист дерева, записать в нем значение , соединить дугой корень дерева с введенной вершиной и отметить её нулем. Если коэффициент представляет собой не константную функцию, то ввести условную вершину дерева, приписать к ней функцию , соединить дугой корень дерева с введенной вершиной и отметить её нулем. Если коэффициент представляет собой константную функцию, то ввести лист дерева, записать в нем значение , соединить дугой корень дерева с введенной вершиной и отметить его единицей, если коэффициент представляет собой не константную функцию, то ввести условную вершину дерева, приписать к ней функцию , соединить дугой корень дерева с введенной вершиной и отметить её единицей.

3) пока существуют концевые условные вершины, для каждой из них выполнить действия, аналогичные действиям, выполненным над корнем дерева.

Бинарное дерево булевой функции, зависящей от n аргументов, обладает следующими свойствами:

- количество условных вершин лежит в пределах от n до 2n-1;

- количество листьев лежит в пределах от n+1 до 2n ;

- глубина дерева лежит в пределах от ]log2(n+1)[ до n.

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

Рис.5.2. Бинарный граф булевой функции

Алгоритм построения бинарного графа булевой функции следующий:

1) строится начальная вершина, к которой приписывается функция f;

2) выбирается переменная разложения xi и записывается в вершине, выполняется разложение Шеннона функции f по переменной xi

,

где y0 и y1 – коэффициенты разложения:

;

.

3) если в графе существует условная вершина, к которой приписана функция y0 (или y1), то проводится дуга в эту вершину и отмечается нулём (единицей); если в графе не существует условной вершины, к которой приписана функция y0 (или y1) и функция y0 (или y1) не является константой, то вводится новая условная вершина, к этой вершине проводится дуга, отмеченная нулём (или единицей) и к ней приписывается функция y0 (или y1); если функция y0 (или y1) является константой, то проводится дуга, отмеченая нулём (или единицей) в заключительную вершину f=y0 (f=y1), если такая существует, или, в противном случае, вводится такая заключительная вершина;

4) пункты 2 и 3 выполняются для всех концевых условных вершин.

Процесс построения бинарного графа функции представлен на рис.5.3.

Бинарный граф булевой функции, зависящей от n аргументов, обладает следующими свойствами:

- бинарный граф не содержит циклов;

- количество условных вершин лежит в пределах от n до 2n-1;

- имеет две заключительные вершины;

- глубина графа лежит в пределах от ]log2(n+1)[ до n.

Рис.5.3. Процесс построения бинарного графа

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

Рис.5.4. Бинарный граф системы булевых функций

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

Бинарный граф системы из k булевых функций, зависящих от n аргументов, обладает следующими свойствами:

- бинарный граф не содержит циклов;

- количество условных вершин не зависят от количества функций в системе и лежит в пределах от n до 2n-1;

- количество заключительных вершин зависит от количества функций в системе и лежит в пределах от 2 до 2к;

- глубина графа не зависит от количества функций в системе и лежит в пределах от ]log2(n+1)[ до n.

Булеву функцию можно представить различными бинарными графами, которые могут различаться количеством условных вершин. Количество вершин зависит от выбора переменной разложения на каждом шаге. Количество вершин в графе вероятно будет меньше, если на каждом шаге в качестве переменной разложения будем выбирать такую переменную, которая позволяет получить коэффициенты разложения с минимальным количеством букв.