Упрощение д.н.ф

Рассмотрим схему упрощения д.н.ф. подробнее. Э.к. называется импликантом функции ƒ, если она равна 0 на всех наборах значений переменных, на которых равна 0 функция ƒ. Импликант называется простым, еcли при удалении из него любой буквы он перестает быть импликантом. Все простые импликанты функции ƒ могут быть получены из конъюнкций её совершенный д.н.ф. удалением некоторых из переменных. Д.н.ф., составленная из всех простых импликантов функции f, реализуем функцию f. Некоторые из э.к. этой д.н.ф. можно удалить, придя, в конце концов, к д.н.ф., из которой нельзя удалить ни одной э.к., не изменив реализуемую функцию. На этом процессе упрощение заканчивается.

Заметим здесь, что выбор удаляемых простых импликантов не однозначен и различные выборы могут привести к различным заключительным д.н.ф. Однако для монотонной булевой функции данная схема упрощения приводит к единственной д.н.ф. Простые импликанты монотонной булевой функции не содержат отрицаний переменных и ни один из них не может быть удален.

Рассмотрим схему упрощения д.н.ф. на примере. Пусть булева функция от трех переменных задана таблицей

х1 х2 х3 f(х12, х3)
       
       
       
       
       
       
       
       

Тогда совершенная д.н.ф. запишется в виде:

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

Парами с требуемыми свойствами будут

Заменив каждую из пар одной конъюнкцией, получаем

В полученной д.н.ф. нет ни одной пары э.к., с которой можно было бы выполнить операцию слияния. Это говорит о том, что все импликанты в данной д.н.ф. – простые.

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

0 0 0        
0 1 1        
1 0 0        
1 0 1        
1 1 1        

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

Из таблицы видно, что первая строка покрывается только первым столбцом, а вторая – вторым. Поэтому первый и второй столбец обязательно входят в покрытие.

После того, как они берутся в покрытие, непокрытой остается лишь четвертая строка, которая может быть покрыта пустым или четвертым столбцом. Это дает две простейшие д.н.ф., представляющие функцию f:

и

.

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

На рисунке отмечены единые вершины функции f и ребра, соответствующие простым импликантам.

 
 


Выпишем теперь для функции f(х1, х2, х3) совершенную к.н.ф.:

и перемножим скобки, воспользовавшись дистрибутивным свойством алгебры

Согласно закону поглощения

Поэтому окончательно произведение двух первых скобок равно . Умножая это выражение на последнюю скобку, получаем

Это есть еще один способ получения всех простых импликантов функции f.

Контрольные вопросы.

1. Какую функцию называют булевой?

2. Какое множество является областью определения и областью значений булевой функции?

3. Какие 3 операции над булевыми функциями задают булеву алгебру?

4. Дайте определение д.н.ф. и к.н.ф.

5. Опишите механизм упрощения д.н.ф.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: