- •Раздел II. Математическая логика
- •Глава 1. Алгебра логики
- •1.1. Объекты изучения алгебры логики. Булевы константы, переменные и векторы
- •1.2. Булевы функции, способы их задания. Элементарные функции. Алгебра логики, ее формулы
- •Задание функции при помощи вектора истинности
- •Матричный способ
- •Задание с помощью полного бинарного дерева
- •Формульное задание
- •1.3. Моделирование составных высказываний при помощи формул алгебры логики
- •1.4. Эквивалентность формул. Тавтологии. Законы логики. Двойственность
- •1.5. Специальные формульные представления булевых функций
- •1.5.1. Конъюнкции и дизъюнкции над множеством переменных. Нормальные формы
- •1.5.2. Конституенты единицы. Совершенные дизъюнктивные и веббовы нормальные формы
- •1.5.3. Конституенты нуля. Совершенные конъюнктивные и шефферовы нормальные формы
- •1.5.4. Полиномы Жегалкина
- •1.6. Минимизация нормальных форм булевых функций
- •1.5.1. Метод покрытий
- •1.6.2. Метод минимизирующих карт
- •1.7. Частично определенные функции. Их минимальное доопределение
- •Контрольные задания по теме функции алгебры логики. Нормальные формы. Полином жегалкина
1.5. Специальные формульные представления булевых функций
Как уже отмечалось, наиболее удобными для физической реализации являются пороговые функции. Это тождественная функция х, отрицаниех, конъюнкция , дизъюнкция , штрих Шеффера , функция Вебба , а также обобщения функций , , , на случай произвольного числа переменных.
Поэтому с практической точки зрения основной интерес представляют формульные представления булевых функций при помощи рассмотренных выше пороговых элементарных и обобщенных функций. Набор элементарных либо обобщенных функций, при помощи которого синтезируют формулы, будем называть базисным набором.
1.5.1. Конъюнкции и дизъюнкции над множеством переменных. Нормальные формы
Определение. Конъюнкцией над множеством переменных Х=(х1,... ,хn) называется логическое произведение вида:
К= хi1 i1 . . . хis is ,
где (хi1 , ... , хis ) Х, хik ik = xik либоxik .
Конъюнкцию К можно представить как результат (s-1) применения двуместной функции логического умножения либо одной обобщенной функции , а также одноместной функции . Аналогом функции по принципу действия (выделение 1 на крайней позиции вектора истинности) является функция Вебба . Поскольку правило x у=x у справедливо для любого числа переменных, то любая конъюнкция К может быть представлена в виде: К=( хi1 i1, . . . , хis i s ), где ― обобщенная функция Вебба. Данное представление назовем представлением в базисном наборе ( ). Отрицаниеx может быть выражено при помощи функции Вебба следующими способами:x = (х, х) = (х, 0) =( 0, х ) (дублирующая подстановка (х, х) на практике реализуется замыканием входов элемента , а подстановка 0 ― заземлением соответствующего входа у функционального элемента (рис.1.5)). Поэтому любая конъюнкция К может быть полностью выражена при помощи элементов ( в базисном наборе ()). При этом общее число функциональных элементов в конъюнкции К при использовании обоих базисных наборов одинаково.
Рис.1.5
Определение. Дизъюнкцией над множеством переменных Х=(х1 , ... , хn) называется логическая сумма вида:
D= хi1 i1 . . . хis is,
где (хi1, ... , хis ) Х, хik ik = xik либоxik .
Дизъюнкция D может быть реализована как при помощи (s-1) двуместной функции , так и применением одной обобщенной функции , а также одноместной функции . Поскольку аналогом функции по принципу действия (выделение 0 на крайней позиции вектора истинности) является функция штрих Шеффера , то с учетом зависимости x у =x у, любая дизъюнкция D может быть представлена в виде:
D = ( хi1 i1, . . . , хis is ),
где ― обобщенная функция Шеффера. Данное представление назовем представлением в базисном наборе ( ).
Так как отрицание можно выразить через :x = (х, х) = (х,1) = (1,х) (рис.1.6), то с использованием данных правил любая дизъюнкция D может быть полностью выражена при помощи элементов ( в базисном наборе ( )). При этом у одной и той же дизъюнкции общее число функциональных символов при использовании обоих наборов также одинаково.
Рис.1.6
Определение. Дизъюнктивной нормальной формой (ДНФ) булевой функции f (х n) называется формульное выражение вида:
f = К1 ... Кр ,
где К1 , ... , Кр - конъюнкции.
Для соединения конъюнкций в ДНФ могут использоваться как 2—местная, так и обобщенная функция . Последняя с использованием эквивалентного соотношения
(К1 , ... , Кр ) = ( К1 , ... , Кр )
может быть заменена обобщенной функцией Вебба.
Определение. Веббовой нормальной формой (ВНФ) булевой функции f (х n) назовем её выражение вида:
f = ( К1 , ... , Кр ),
где К1,...,Кр — конъюнкции, представленные как Кs =( хi1i1, ... , хisis), (1 s p).
С помощью ДНФ и ВНФ наиболее просто выражаются булевы функции, у которых в векторе истинности преобладают нули и мало единиц.
Замечание 1. В виде ДНФ и ВНФ могут быть представлены все функции алгебры логики, не равные константе 0. Эта функция не представима в данных формах, поскольку при наличии хотя бы одной конъюнкции в формулах ДНФ или ВНФ в векторе истинности функции также должна присутствовать хотя бы одна единица.
Замечание 2. Выражения с одним слагаемым вида f = К1 для сохранения общности также будем относить к ДНФ (ВНФ). Назовем такие формы вырожденными.
Пример 1. Представить ДНФ булевой функции f = ху х у z в эквивалентной ВНФ. Дать решение задачи а) в базисном наборе ( ) и б) в базисном наборе () .
Решение. Заменяя умножение во внутренних конъюнкциях ДНФ функцией Вебба, вначале изменим внутренние конъюнкции формы: ху = (х, у), х у z = (х,у,z). Внешнее сложение преобразуем с использованием правила: (К1, ... , Кр) = (К1 , ... , Кр ). В итоге получим искомое выражение функции в базисном наборе ( ):
f = ((х, у), (х, у, z )).
Применяя эквивалентную заменуx = (х, х), находим формульное выражение функции, содержащее только функцию Вебба:
f =[ (((х, x), у), ( х, (y, у), (z, z))), (((х, x), у), ( х, (y, у), (z ,z)))].
Полученные выражения дают искомое решение задачи.
Определение. Конъюнктивной нормальной формой (КНФ) булевой функции f (х n) называется её формульное выражение вида:
f=D1... Dр,
где D1 ,..., Dр — дизъюнкции.
В КНФ могут использоваться 2 — местная или обобщенная функции . Последняя с использованием эквивалентного соотношения (D1, ... , Dр) = (D1, ... , Dр ) может быть заменена обобщенной функцией Шеффера.
Определение. Шефферовой нормальной формой (ШНФ) булевой функции f (х n) назовем её выражение вида:
f = (D1, ..., Dр),
где D1, ... ,Dр — дизъюнкции, представленные в эквивалентной форме Di = (хi1 i1, . . . , хis i s ), (1 i p).
Замечание 3. В виде КНФ и ШНФ могут быть представлены все функции алгебры логики, не равные константе 1. Данная функция не представима в виде КНФ и ШНФ, поскольку при наличии хотя бы одной дизъюнкции в их формулах вектор истинности функции также должен иметь хотя бы один нуль.
Замечание 4. Выражения с одним сомножителем вида f = D1 для сохранения общности будем считать вырожденными КНФ (ШНФ).
Пример 2. Перевести КНФ булевой функции f =(х у z)& (у z) в эквивалентную ШНФ. Дать решение задачи а) в базисном наборе ( ) и б) в однофункциональном наборе () .
Решение. Заменим сложение во внутренних суммах (дизъюнкциях) КНФ обобщенной функцией Шеффера: (х у z) = (х,у,z); (у z)= (у, z). Затем по правилу (D1, ... , Dр)= (D1, . . . , Dр ) производим замену внешнего сложения. В итоге получаем выражение функции в базисном наборе ( ):
f = ( (х,у,z), (у, z)).
После эквивалентной заменыx = (х, х), находим формулу функции, содержащую только функцию Шеффера:
f = [ ( (х, (у, у), (z, z)), (у , z)), ( (х, (у, у), (z, z)), (у , z))].
Таким образом, получены обе искомые формулы.
ЗАДАЧИ
1. Доказать (например, с использованием таблиц истинности) правильность следующих подстановок:
а)x = (х, х) = (х, 0) =(0, х) ;
б)x = (х, х) = (х, 1) = (1, х) .
2. Доказать эквивалентность следующих обобщенных формул:
а) F1= ( х1, ... , хs ) и F2 = ( х1, ... , хs );
б) F1 = & ( х1, ... , хs ) и F2 = ( х1, ... , хs).
3. Представить ДНФ в виде эквивалентной ВНФ. Дать решения задачи в базисных наборах ( ) и () :
а) f =х у z у z ;
б) f = х уху у z .
4. Преобразовать КНФ булевых функций в эквивалентные ШНФ с использованием базисных наборов ( ) и ( ) :
а) f = (х у z)(х у z);
б) f = (х у)(у z)(х z).