- •Часть II
- •Алгебра двузначной логики
- •Функции алгебры логики
- •Способы задания функций алгебры логики
- •Эквивалентность функций
- •Реализация функций формулами
- •Эквивалентность формул и тождества
- •Упрощение формул
- •Двойственные функции и принцип двойственности
- •Применение принципа двойственности
- •Аналитическая запись функций алгебры логики
- •Аналитическое построение сднф и скнф
- •Теорема о тройке связок
- •Полные системы функций и полиномы Жегалкина
- •Замыкание систем функций алгебры логики
- •Важнейшие замкнутые классы
- •Теорема Поста о полноте
- •Минимизация булевых функций
- •Основные понятия
- •Метод неопределенных коэффициентов
- •Тупиковые днф и алгоритм наискорейшего спуска
- •Геометрическое представление функций алгебры логики
- •Аналитическое построение сокращенной днф
- •Локальные алгоритмы
- •Алгоритм Куайна
- •Диаграммы Вейча–Карно
- •Построение днф по карте Карно
- •Задачи и упражнения
- •Список литературы
- •Часть II
- •400131, Волгоград, просп. Им. В.И.Ленина, 28
- •400131, Волгоград, ул. Советская, 35
-
Алгоритм Куайна
Входными данными для работы алгоритма является задание сокращенного покрытия функции или СокрДНФ.
1) На каждом шаге 1-го этапа для очередного максимального интервала (простой импликанты) строится окрестность 1-го порядка: S1(NКi)={NКi, NКi1, NКi2,…,NКim}, где NКi1, NКi2,…,NКim – это максимальные интервалы функции f, имеющие непустое пересечение с интервалом NКi.
Затем проверяется включение NКi NКi1 NКi2 … NКim.
Если это включение не имеет места, то конъюнкция Ki отмечается некоторым способом, как входящая во все МДНФ или как ядровая конъюнкция, а интервал NКi – как ядровой интервал. Объединение всех ядровых интервалов называется ядром сокращенного покрытия.
2) Пусть на первом этапе множество максимальных интервалов функции f разбилось на два подмножества: Я={Я1,Я2,…,Яр} – все ядровые интервалы и В={В1,В2,…,Вq} – все остальные интервалы (или что то же самое – конъюнкции).
Для каждого интервала из множества В проверяется включение в ядро, т.е. ВiЯ1 Я2 … Яр. Об интервалах, для которых это включение выполняется, говорят, что они покрываются ядром. Соответствующие им простые импликанты не входят ни в одну МДНФ, они удаляются из СокрДНФ.
ДНФ, полученная в результате работы этого алгоритма, носит название ДНФ Куайна. Важным свойством этой ДНФ является её единственность для каждой функции алгебры логики, которая вытекает из её построения.
Пример.
Пусть функция задана в виде СокрДНФ: = К1 К2 К3
Или, что то же самое, в виде сокращенного покрытия:
Nf = {(0,0,0),(0,0,1)} {(0,0,0),(1,0,0)} {(1,0,0),(1,1,0)}= N1 N2 N3, где N1, N2, N3 – максимальные интервалы для f.
На первом этапе строим окрестности 1-го порядка для каждого максимального интервала
S1(N1)={N1, N2} и т.к. N1N2 N1 – ядровой интервал;
S1(N2)={N2, N1, N3} и т.к. N2 N1 N3 N2 – не ядровой интервал;
S1(N3)={N3, N2} и т.к. N3N2 N3 – ядровой интервал;
На втором этапе имеем множество ядровых интервалов: Я={N1, N3} и один не ядровой интервал N2 и, т.к. N2 N1 N3, – покрывается ядром, то конъюнкцию, соответствующую интервалу N2, можно удалить. В результате ДНФ Куайна имеет вид: f(x, y, z) =
В данном случае ДНФ Куайна совпадает с МДНФ функции f.
Построение ДНФ Куайна может быть оформлено в виде таблицы Куайна. В этой таблице по горизонтали выписывают все элементарные конъюнкции СДНФ, а по вертикали – простые импликанты сокращенной ДНФ. На пересечении столбцов и строк проставляют единицы в тех местах, где импликанта «накрывает» элементарную конъюнкцию (т.е. все символы импликанты имеются в элементарной конъюнкции). Если в некотором столбце имеется только одна единица, то соответствующая импликанта является ядровой. Определив таким способом все ядровые конъюнкции, далее нетрудно выявить те импликанты, которые покрываются ядром, – все единицы таких импликант имеются среди единиц ядра. Удалив эти импликанты, получим ДНФ Куайна.
По такой таблице можно также построить и МДНФ. Заметим, что в каждом столбце может быть проставлено несколько единиц, в то время как достаточно иметь только одну. Поэтому избыточные единицы можно исключить. Выбор единиц выполняется из соображений минимальности общего числа букв и с тем, чтобы выбранное подмножество импликант (единиц) «накрывало» все элементарные конъюнкции исходной СДНФ (т.е. чтобы в каждом столбце была бы выбрана по крайней мере одна единица). При этом решений может быть несколько.
Пример:
Пусть функция задана в виде СДНФ: .
Построим её СокрДНФ:
|
|
|
|
|
xyz |
|
|
1 |
|
1 |
|
|
|
yz |
|
1 |
|
|
1 |
|
|
|
|
1 |
1 |
|
|
xy |
|
|
|
1 |
1 |
|
|
Таблица 25 |