Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Булевы функции, их свойства и преобразования.
Прежде чем заняться определением и выяснением свойств булевых функций, напомним свойства и определение логических операций. Логические операции, как правило, задают таблицами истинности. Пусть задана бинарная величина х, принимающая два значения 0 и 1, то отрицание х, обозначаемое
Конъюнкция двух бинарных величин
Операцию конъюнкция называют логическим умножением (логическое Дизъюнкция или логическое сложение определяется следующей таблицей истинности, имеющей вид
Таблица истинности для операции эквивалентности имеет вид
Можно строить сложные конструкции из величин
если договориться о следующем выполнении порядка действий 1. Конъюнкция выполняется раньше, чем все остальные операции. 2. Дизъюнкция выполняется раньше, чем импликация и эквиваленция. Все возможные значения какой-либо формулы, в зависимости от входящих в нее элементарных переменных определяются с помощью таблицы истинности. Например, для формулы
Две формулы называют равносильными, если они принимают одинаковые значения на любом наборе значений входящих в формулы переменных. Выпишем основные равносильности 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Здесь Выпишем также равносильности, выражающие одни операции через другие 1. 2. 3. 4. 5. 6. Определим еще одну операцию которую называют «Штрих Шеффера», эта операция определяется следующей таблицей истинности
Выпишем теперь равносильности, выражающие основные законы алгебры логических операций. 1. 2. 3. 4. 5. 6.
Булевой функцией Совершенно очевидно, что существует Как и любую функцию, булеву функцию можно задать при помощи таблицы. Так выглядят таблицы для булевой функции одной переменной.
Для одной переменной, как это видно из приведенной таблицы, число булевых функций равно четырем. Приведем таблицу для булевых функций двух переменных
Нетрудно видеть, что выполняются следующие равенства
Для произвольного числа переменных булевой функции Любую булеву функцию можно представить следующим образом
Определение. Элементарной конъюнкцией
здесь
Любую булеву функцию, пользуясь введенными определениями, можно представить следующим образом
здесь суммирование происходит по тому множеству Приведем пример такого представления. Пусть задана булева функция посредством таблицы
Следуя формуле (1) эта булева функция представима следующей формулой
Определение. Дизъюнктивной нормальной формой (ДНФ) формулы А называется равносильная ей формула, представляющая собой дизъюнкцию элементарных конъюнкций. Как следует из приведенного определения, формула (2) является дизъюнктивной нормальной формой представления булевой функции. Пусть Очевидно, что справедливо равенство
Ясно, что функция
Выражение (4) называется конъюнктивной нормальной формой и соответствующее представление булевой функции называется совершенной конъюнктивной нормальной формой (КНФ). Рассмотрим функцию, определяемую формулой (2) и построим для нее (КНФ). Согласно приведенным рассуждениям имеем
Напомним определение операции
В алгебре логики эта операция называется XOR, употребляется также название – исключающее или. Совершенная полиномиальная нормальная форма. Эта форма представления булевых функций определяется формулой
Рассмотрим доказательство этой формулы. В формуле (2) операцию
Во всех конъюнкциях можно произвести замену
Построим полиномиальную форму для булевой функции, которую мы используем для примера. Перепишем формулу (2)
Рассмотрим еще один пример построения полиномиальной формы для следующей функции
Для произвольной функции
следующий пример позволяет более подробно понять определение двойственной функции
Далее мы рассмотрим способы изображения булевых функций на плоскости. Если функция имеет
здесь
. На следующем рисунке изображена такая диаграмма.
На этой диаграмме единичное значение переменной изображается чертой, нулевое значение отсутствием черты. Обсудим принципы построения так называемой карты Карно. Принцип перечисления в этом случае можно пояснить на примере четырех переменных. В четырех столбцах приведенных слева, наборы переменных перечислены в позиционном коде. В четырех столбцах справа наборы переменных перечислены в коде Грея.
Построение кода Грея происходит по следующей схеме:
На рисунке внизу изображена матрица в коде Грея для случая
Обсудим теперь вопрос упрощения булевых функций. В первую очередь два свойства дистрибутивности. 1 свойство
это свойство мы можем доказать с помощью таблиц истинности. 2 свойство
Проследим за следующей цепочкой равенств, которая доказывает приведенное свойство
Дальнейшие упрощения этого соотношения возможны с использованием соотношения которое называется теоремой поглощения
Доказательство этого утверждения очень простое, читателю предлагается провести его самостоятельно. С использованием этого свойства перепишем (9).
Выпишем еще несколько полезных теорем. Теорема склеивания.
Доказательство этого свойства просто, если заменить следующее
Теорема неполного склеивания.
Эту равносильность легко доказать, используя таблицу истинности. Теорема обобщенного склеивания.
Эту равносильность также легко доказать используя таблицу истинности. Сформулируем теперь правила, посредством которых можно упрощать ДНФ. Операция поглощения. Конъюнкция Рассмотрим пример
Операция неполного склеивания. Конъюнкции Пример
Операция обобщенного склеивания. Две конъюнкции Пример.
Пример. Упростим ДНФ
Мы выполнили операцию склеивания. Задание. С использованием операций склеивания и обобщенного склеивания провести упрощение ДНФ.
Рассмотрим класс булевых функций, называемых симметрическими. Определение: Булева функция симметрична по переменным
Булева функция называется симметрической, если она симметрическая по всем парам переменных. Существует простой критерий проверки функции на симметричность. Разобьем наборы переменных булевой функции на классы. В каждом наборе, принадлежащем определенному классу переменных, принимающих значения, равные единице, фиксировано. Критерий, позволяющий проверить функцию на симметричность, следующий 1. Выпишем множество наборов переменных 2. Разбиваем множество 3. Проверяем соотношение
Если последнее соотношение выполняется для всех классов, то функцию можно считать симметрической.
Выпишем наборы, на которых функция обращается в нуль
Из приведенной записи следует, что для проверки на симметричность мы выписали наборы переменных, на которых функция обращается в единицу. Далее мы эти наборы разбили на классы и проверили справедливость равенства Булева функция считается симметрической в расширенном смысле, если симметрична она сама или булева функция, полученная инвертированием переменных. Пример
, несимметрическая. Если инвертировать значение переменной , то получим симметрическую булеву функцию.
Каким образом определяются переменные, которые нужно инвертировать, чтобы получить симметрическую булеву функцию в расширенном смысле. Пусть Для симметричных функций отношение Для нашего примера имеем.
Из рассмотрения этого примера получаем, что инвертировать нужно
Мы можем теперь сформулировать алгоритм проверки булевой функции на симметричность в расширенном смысле. Выписываем множество На вопрос, сколько различных симметрических булевых функций существует, отвечает следующая теорема. Теорема. Существует Симметрическая булева функция задается множеством Определим еще одно понятие, касающееся булевых функций. Булева функция называется положительной по переменной Пример.
Преобразованная ДНФ позволяет заключить, что функция монотонна. Булева функция называется самодвойственной, если выполняется соотношение
|