
- •3. Булево пространство, способы задания булева пространства.
- •4. Интервал в булевом пространстве, утверждение о мощности интервала, способы задания интервала.
- •5. Соседние интервалы. Утверждение о соседних интервалах.
- •6. Алгоритм распознавания интервала, заданного перечислением векторов.
- •8. Булева функция, способы ее задания.
- •9. Существенные и фиктивные переменные. Алгоритмы выявления и удаления фиктивной переменной.
- •Равносильность формул
- •12) Разложение функции по k переменным. Доказательство
- •16) Двойственная функция. Построение двойственной функции по таблице истинности.
- •18) Утверждение о конъюнкции и интервале. Днф и достаточное множество интервалов
- •19) Импликанты и простые импликанты функции
- •21. Метод Закревского получения приближенной кратчайшей днф
- •22. Поиск сокращенной днф: теорема Квайна и алгоритм Квайна-МакКласки.
- •23. Поиск сокращенной днф: теорема Блэйка и алгоритм Блэйка-Порецкого.
- •26. Частичные булевы функции, способы их задания, доопределение
- •27.Частичные булевы функции, точный метод их минимизации
- •28. Частичные булевы функции, их минимизация по матрицам в коде Грэя. Метод Закревского
- •29. Метод конкурирующих интервалов для минимизации частичной булевой функции.
- •30.Система булевых функций. Кратчайшая и безызбыточная системы днф.
- •31. Получение приближенной кратчайшей системы днф методом конкурирующих интервалов.
Равносильность формул
Определение. Две формулы F' и F" называются равносильными, если они задают равные функции. В этом случае пишут F' = F".
Доказывать равносильности можно с помощью таблиц истинности или рассуждений, опирающихся на свойства элементарных булевых функций.
Пример.
Докажем
равносильность
,
построив
таблицы истинности для левой и правой
формул.
Основные равносильности
К основным относят следующие равносильности, которые рекомендуется запомнить и применять при упрощении формул.
11) Формула Шенона.Докозательство
Определение. Разложением Шеннона называется следующее разложение булевой функции f(x1, ...,xn) по переменной xi:
Доказательство (не умоляя общности, для i =1). Покажем, что формула верна в обоих случаях: для x1 = 0 и x1 = 1.
Если x1 = 0, то f (0, x2, ... , xn) = 0 f (1, x2, ... , xn) 1 f (0, x2, ... , xn) =
= f (0, x2, ... , xn).
Если x1 = 1, то f (1, x2, ... , xn) = 1 f (1, x2, ... , xn) 0 f (1, x2, ... , xn) = = f (0, x2, ... , xn).
Оп
ределение.
Сомножитель f (x1, ...,
xi -1,
1, xi+1,... , xn)
в формуле Шеннона называется коэффициентом
разложения функции
f (x1, x2, ... , xn)
по
переменной
xi
при xi,
а сомножитель f (x1, ...,
xi -1, 0, xi+1,... , xn)
— коэффициентом
разложения функции f (x1, x2, ... , xn)
по xi
при
.
Пример.
Функцию
разложим
по переменной x:
12) Разложение функции по k переменным. Доказательство
Разложим функцию f(x1, ...,xn) последовательно по двум переменным: сначала саму функцию по переменной x1, затем коэффициенты разложения по переменной x2.
Рассмотрим булеву функцию f (x1, x2, ... , xn) и, используя формулу Шеннона, последовательно разложим функцию
- по первой переменной,
- по двум первым переменным,
- по k первым переменным.
1. Разложим функцию по первой переменной:
f (x1, x2, ... , xn) = x1 f (1, x2, ... , xn) x1 f ( 0, x2, ... , xn).
2. Разложим в полученной формуле оба коэффициента разложения по второй
переменной:
f (x1, x2, ... , xn) = x1 f (1, x2, ... , xn) x1 f ( 0, x2, ... , xn) =
= x1 [ x2 f (1,1, x3, ... , xn) x2 f (1,0, x3, ... , xn) ]
x1 [ x2 f (0,1, x3, ... , xn) x2 f (0,0, x3, ... , xn) ] =
= x1 x2 f (1,1, x3, ... , xn) x1x2 f (1,0, x3, ... , xn)
x1 x2 f (0,1, x3, ... , xn) x1x2 f (0,0, x3, ... , xn) =
[ свернем последнюю формулу в более короткую, используя следующие
обозначения: x = x1 и x = x0, то есть xс, где c {0,1}, и условимся
читать символы xс как “x в степнени c “]
3. По аналогии с предыдущей формулой запишем формулу разложения
функции
по k переменным:
и докажем, что данное разложение
верно.
Доказательство. Подставим в левую и правую части равенства произвольный набор a1 a2 ... an:
Упростим
правую часть, рассуждая следующим
образом. Нетрудно проверить, что
1, если и только если ai
=
ci
(в самом деле: 0 0
= 1, 11
= 1, но 0 1
=
0 и 10
= 0), поэтому конъюнкция
равна
единице лишь в единственном случае,
когда наборы
a1
a2
...
ak
и с1
с2
...
сk
совпадают.
А это значит, что она не обращает в ноль
лишь одно слагаемое правой части —
то, для которого
a1
a2
...
ak
=
с1
с2
...
сk
и в котором сама обращается в единицу.
Подставив в ставшееся слагаемое a1
a2
...
ak
вместо
с1
с2
...
сk
,
получим
13) Получение СовДНФ из разложения функции по переменным. Утверждение о существовании и единственности СовДНФ.Алгоритм построения СовДНФ по таблице истинности функции.
Применив формулу разложения булевой функции f (x1, x2, ... , xn) по k переменным при k = n, получим:
Поскольку коэффициентами разложения f (c1, c2, ... , cn) в этой формуле являются значения функции f (x1, x2, ... , xn) на всевозможных наборах c1 c2 ... cn, то возможны два случая:
- если набор c1 c2 ... cn M0 ( f ), то f (c1, c2, ... , cn ) = 0 и поэтому обращается в 0 соответствующее слагаемое правой части;
- если набор c1 c2 ...cn M1 ( f ), то f(c1, c2, ... , cn ) = 1 и слагаемое упрощается.
В результате имеем формулу разложения функции по всем переменным:
Определение.
Совершенная
дизъюнктивная нормальная форма
булевой функции
,
или
СовДНФ,
—
это формула вида:
Утверждение о единственности СовДНФ
Любая булева функция, кроме константы 0, представима совершенной дизъюнктивной нормальной формой, единственной для данной функции.
Алгоритм построения СовДНФ (по таблице истинности) вытекает из определения СовДНФ и состоит в циклическом выполнении следующих шагов:
Шаг 1: в векторе – столбце значений функции выбирается очередная единица. Если единицы исчерпаны, то идем на конец.
Шаг 2: по набору значений аргументов выбранной строки формируется конъюнкция всех аргументов с соблюдением следующего правила: если i – я компонента набора 0, то i – я переменная входит в конъюнкцию в степени 0 (с инверсией), иначе – в степени 1 (без инверсии). Полученная конъюнкция добавляется в формулу как очередное слагаемое. Идем на шаг 1.
Конец.
Пример.
Соединив полученные конъюнкции знаками дизъюнкции, получим:
14) Получение СовКНФ из разложения функции по переменным. Утверждение о существовании и единственности СовКНФ. Алгоритм построения СовКНФ по таблицк истинности.
Пусть дана функция f(x1, x2, ... , xn). Представим ее инверсию СовДНФ:
Инвертируем обе части этого равенства:
По законам двойного отрицания и де Моргана имеем:
[
заметив,
что
,
так как при c
= 0 x
= x,
а при c = 1x
=x
, получим ]
Определение. Совершенная дизъюнктивная нормальная форма функции
f(x1, x2, ... , xn), или СовКНФ, — это формула вида:
Сформулируем утверждение с очевидностью вытекающее из СовКНФ.
Утверждение о единственности СовКНФ
Любая булева функция, кроме константы 1, представима cовершенной конъюнктивной нормальной формой, и она единственна для данной функции.
Алгоритм построения СовКНФ по таблице истинности вытекает из определения СовКНФ и состоит в циклическом выполнении следующих шагов:
Шаг 1: в векторе - столбце значений функции выбирается ноль. Если нули исчерпаны, то идем не конец.
Шаг 2: по набору значений аргументов выбранной строки формируется дизъюнкция всех аргументов с соблюдением следующего правила: если i-я компонента набора равна 0, то i-я переменная входит в дизъюнкцию в степени 1 (без инверсии), иначе – в степени 0 (с инверсией). Полученная дизъюнкция добавляется в формулу как очередной сомножитель. Идем на шаг 1.
Конец.
Пример.
Соединив полученные дизъюнкции знаками конъюнкции, имеем:
15) Двойственная функция и двойственная формула.Принцип двойственности.
Определение. Булева функция f*(x1, ...,xn) называется двойственной булевой функции f(x1,..., хп), если она получена из функции f(x1, ...,хп) инверсией всех аргументов и самой функции, т.е.
Определение. Формула F* называется двойственной формуле F, если она получена из F заменой символов функций на символы двойственных им функций.
Теорема (принцип двойственности.) Если формула F задает булеву функцию f(x1, ...,xn), то двойственная ей формула F* задает двойственную функцию f*(x1, ...,xn).
Пример.
Рассмотрим
формулу
,
задающую
функцию НЕ-ИЛИ, то есть стрелку Пирса.
Двойственная ей формула
должна
задавать функцию, двойственную стрелке
Пирса - это штрих Шеффера: в самом
деле
- это функция НЕ-И, то есть штрих Шеффера.