Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.52 Mб
Скачать

Кубическое представление Булевых функций.

Каждый набор l представляет l1, l2..ln как l вектор, определяющий точку пространства. Исходя из этого, все множество наборов, где определена функция, графически представляется в виде вершин n-мерного куба. Отмечая точками вершины, в которых функция равна 0, получают геометрическое представление. При изучении Булевых функций в геом. Представлении используются следующие понятия:1) расстояние между вершинами - число переменных, которые должны измениться при переходе от одной вершины к другой. 2) Две вершины соседние, если расстрояние между ними равно 1, то есть если вершины отличаются только по одной переменной.

С использованием геом. интерпритации стоятся кубические представления Булевых функций, основанные на использовании n-мерных кубов. Каждому терму ДКФ функции n переменных соответствует n-мерный набор, равный 0 или 1, на котором терм принимает единичное значение. В геом. смысле набору e1, e2....en, соотвествует вершины n-мерного куба с координатами

e1, e2....en. Элемент e1, e2....en принято называть нулем куба. Множество ноль кубов, на котором функция равна 0, называется кубическим комплексом. Если два ноль куба различаются только по одной координате, то они образуют один единичный куб. Один куб представляется общими элементами нуль кубов единствеными координатами.

Два ноль куба различаются только по третьей координате и образуют один куб, которому соответствует ребро трехмерного куба. Все множество называется комплексом К1, он может быть постоен по комплексу К0 путем объединения кубов.

Если 2 единичных(1-куб) куба из комплекса К1 имеют общую независимую компаненту и различаются только по одной координате, то они образуют 2-куб. В записи 2-куба используются общие компаненты единичных кубов, компанента с различными значениями в 1-кубе, в 2-кубе представляется независимым Х. (Пример: 1х0 и 1х! образуют 1хх)

Все множество 2-кубов, построеных из комплекса К1, образуется комплекс К2. Этот комплекс имеет вид {1xx}. При индукции можно определить, что 2 куба, соодержащие все одноименные независимые координаты и различающиеся только по одной координате, могут объединяться в (r+1)-куб. Такое множество, определенное в комплексе Кr, образуют комплекс K(r=1)

К3 отсутствует. Объединение кубов из комплексов К0, К1, К2 в функции f называется кубическим комплексом функции f. Для данной функции комплекс К(f) соответствует объединеннию кубов К0, К1, К2

Геометрическая интерпретация куба

Если два 1-куба из комплекса К1 имеют общую независимую компоненту и различаются только по одной координате, до два 1-куба образуют 2-куб. В записи 2-куба используются общие компоненты единичных кубов. Компонента, принимающая различные значения в 1-кубах, обозначается в 2-кубе как независимая компонента X. Все множество 2-кубов, построенных из комплекса К1, образует комплекс К2.

П ример:

По индукции можно определить, что два куба, сдержавшие две одноименные независимые координаты и различающиеся только одной координате, могут объединяться в (r+1) куб. (r+1)-я независимая координата которого соответствует координате, по которой различаются r-кубы. Множество (r+1)-кубов, определенное на комплексе Kr, образуют комплекс Kr+1. В рассмотренном выше примере тройные Кубы отсутствуют, то есть комплекс K3 представлен пустым множеством. Объединение кубов комплексов K0, K1, Kn функцией f(x1, x2, xn) называется уличениям комплексом функции f. Для рассматриваемой функции комплекс Kf соответствует объединению кубов K0, K1, K2.

Задача минимизации булевых функций

Булевы функции используются в качестве форм, по которым строятся логические схемы. При использовании многовходовых логических элементов и/или/не логическая схема может быть построена по ДНФ или по КНФ функции. При это минимальной логической схеме соответствует наименьшее число элементарных конъюнкций (дизъюнкций) в записи функции. Каждой букве, входящей в выражение для функции, соответствует один из входов схемы, и количество входов равно числу букв в выражении для функции. Нетрудно видеть, что минимальной можно считать логическую схему, построенную по ДНФ или КНФ функции, содержащей минимальное число букв. Следует отметить, что минимизация ДНФ или КНФ функции в соответствии с указанным критерием не во всех случаях приводит к определению минимальной логической схемы. Задача минимизации булевых функций по критерию минимальности числа букв, входящих в ДНФ функции, называется канонической задачей минимизации.

Минимизация булевых функций

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

Задача минимизации Булевых функций

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

Задача минимизации по критерию числа букв, входящих в ДНФ - каноническая задача минимизации. Существует несколько способов упрощения логических выражений, наиболее распространены - 3(Алгебраический, с помощью карт Карно(Диаграм Вейча), с помощью таблиц Квайна-МакКласки).

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

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

в один куб комплекса С.(Пример:f=-x1-x2x3 v -x1x2x3, K(f) = {001, 011, 0x1} -> C(f) = {0x1}, минимализируем функцию: -х1х3(-х2 v x2) = -х1х3. При проверке показано, что ошибок не было.)

Образование единичных кубов.

С использованием карт Карно легко выделяется минимальное покрытие функции, по которому строится ДНФ и КНФ функции. Две соседние клетки образуют единичный куб. Имеется ввиду, что клетки, лежащие на границе карты, так же соседние.(Пример: f = -х1-х2-х3 v -x1-x2x3 v -x1x2x3 v x1-x2-x3 v x1x2-x3)

Обводим попарно все клетки, содержащие 1. Первый столбец, где х1 равен 0 и 1, дает единичный куб. Следовательно, минимальное покрытие функции:

x00

C= 0x1

1x0

Общие правила минимизации.

Один из вариантов: факторизация(вынесения общего множетеля). Если значения безразличны, несущественные наборы используются для построения кубов большей размерностей, в результате уменьшается цена покрытия функции.

Составление таблицы покрытий.

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

j-ый 0-куб. Ипликанта покрывает 0-куб, если она отличается от 0-куба только независимыми координатами, отмеченными знаком X.(Пример таблицы в файле Таблица Покрытий.doc).

Определение существенных импликант.

Если в каком-либо столбце таблицы есть только одна метка, то первичная импликанта, стоящая в определенной строке, является существенной импликантой. Она обязательно входит в минимальное покрытие, так как без ее использования, невозможно покрыть все вершины функции. В связи с этим, в определяющее покрытие выносится существенные импликанты, из таблицы вычеркиваются строки, соответствующие импликантам,

и столбцы, покрываемые этими импликантами. В рассматриваемом примере, существенные импликанты определяются так: импликанта х10х - существенная для вершины 0100 и 1100. Вычеркивая строку х10х и столбцы 0100, 0101, 1100 и 1101(отмеченные), получаем упрощенную таблицу(в том же файле). Если в полученной таблице, существую 2 столбца, имеющие метки в одинаковых строках, то один из столбцов вычеркивается,

так как в покрытии вычеркнутого столбца может производиться покрытие оставшегося столбца. В данном случае это 0111 и 1011.

Вычеркивание лишних импликат.

Если после вычеркивания появляются строки без меток, то импликанты, соответствующие этим строкам, вычеркиваются. В данном случае это 01х1.

Выбор минимального покрытия.

Исследуется полученная таблица. Выбирается совокупность первичных импликант, обеспечивающая наибольшее покрытие с меньшей ценой. В некоторых случаях, может быть несколько вариантов покрытия. В данном примере, в упрощенной таблицы выбираются компоненты 0х11 и 10х1, покрывающее все столбцы, таким образом покрытие функции, заданая образом К0, имеет следующий вид: С(f) = {x10x, 0x11, 10x1}, f = x2-x3 v -x1x3x4 v x1-x2x4

При минимизации частично определяемых Булевых функции, которые заданы множеством существенных компонент К0 и множеством несущественных D0, первичные импликанты появляются и на К0, и на D0, состоящие из обоих вершин.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]