Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
98
Добавлен:
27.03.2015
Размер:
3.17 Mб
Скачать

Дискретная математика

Читал: Павлов Игорь Сергеевич

Набрал: Смирнов Вадим Евгеньевич

ННГУ, 2000 г.

Глава III. Алгебра логики.

(Лекция 7)

Функции алгебры логики

E2 = {0, 1}

Определение. Функцией алгебры логики называется отображение f:  E2, где xi  E2, i = 1, 2, …, n. Функции алгебры множеств называются булевыми функциями. Обозначим все множество булевых функций через P2(n).

Теорема (О количестве булевых функций от n переменных):

Мощность множества булевых функций |P2(n)| = .

Доказательство: (Следует из Теоремы о мощности всех подмножеств данного множества)

Пример: |P2(4)| = = 216 = 65536

Существенные и фиктивные переменные

Определение. Функция f(x1, x2, … xi-1, xi, xi+1, … xn) существенно зависит от переменной xi, если существует набор 1, …, n переменных x1, …, xn, что выполняется неравенство:

f(x1, x2, … xi-1, 0, xi+1, … xn)  f(x1, x2, … xi-1, 1, xi+1, … xn).

В этом случае переменную xi называют существенной. Если же xi не является существенной, то ее называют фиктивной.

Определение. Переменную xi называют фиктивной, если для любого набора значений 1, …, n переменных x1, …, xn выполняется равенство: f(x1, x2, … xi-1, 0, xi+1, … xn) = f(x1, x2, … xi-1, 1, xi+1, … xn).

Примеры:

  1. f(x1, … xn)  0  xi – фиктивная, i = 1, 2, …, n.

2)

x

y

f(x, y)

0

0

0

0

1

1

1

0

0

1

1

1

f(0, 0)  f(0,1)  Переменная x – существенная

f(0, 0) = f(1,0) 

f(0, 1) = f(1,1)  Переменная y – фиктивная

Исключение и введение фиктивных переменных

Пусть для функции f(x1, … xn) переменная xi – фиктивная. Ее можно исключить и перейти к булевой функции g(x1, x2, … xi-1, xi+1, … xn) с n – 1 переменной. Для этого в таблице для функций вычеркнем все строки, соответствующие значениям xi = 1 и столбец для аргумента xi. Полученная таблица будет определять функцию g(x1, x2, … xi-1, xi+1, … xn). При этом говорят, что функция g получена из функции f исключением фиктивной переменной xi. Кроме того, можно сказать, что f получена из g введением фиктивной переменной xi.

Равенство функций

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

Пример:

x

y

f(x, y)

x

g(x)

0

0

0

0

0

0

1

1

1

1

1

0

0

1

1

1

g(y) = f(x, y)

Вывод: Если одна функция получена из другой исключением или введением фиктивной переменной, то такие функции являются равными.

Замечание:

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

  2. Если дана конечная система булевых функций {f1, …, fs} P2, то можно считать, что все s функций зависят от одних и тех же переменных.

В Алгебре логики некоторые функции принято считать элементарными.

Элементарные булевы функции от одной переменной

x

x

0

1

0

0

1

0

1

1

1

0

0

1

- инверсия (отрицание) x

Элементарные булевы функции от двух переменных

x

y

x & y

x  y

x ~ y

x  y

x  y

x / y

x  y

0

0

0

0

1

0

1

1

1

0

1

0

1

0

1

1

1

0

1

0

0

1

0

1

0

1

0

1

1

1

1

1

0

1

0

0

x & y – конъюнкция (логическое умножение)

(x & y = 1  x = 1  y = 1)

x  y – дизъюнкция (логическое сложение)

(x  y = 0  x = 0  y = 0)

x ~ y – эквивалентность

(x ~ y = 1  x = y)

x  y – сумма по модулю 2 (разделительная дизъюнкция) ()

(x  y = 0  x = y)

x  y – импликация (логическое следование)

x / y – штрих Шеффера (антиконъюнкция) ()

x  y – стрелка Пирса (антидизъюнкция, функция Вебба, функция Даггера) ()

Формулы Алгебры логики. Суперпозиция булевых функций

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

(Лекция 8)

Если функция f соответствует формуле A, то говорят, что формула А реализует функцию f.

Определение. Формулы А и В называются эквивалентными (A ~ B), если соответствующие им функции эквивалентны: f = g (f ~ A, g ~ B).

Пусть f1(x) = , f2(x, y) = x & y, f3(x, y) = x  y, f4(x, y) = x  y.

f(x, y, z) = f3(f2(x, z), f1(f4(y, z)) – суперпозиция

- формула Алгебры логики

Таблица:

x

y

z

x & z

0

0

0

0

0

0

0

0

1

0

0

0

0

1

0

0

1

1

0

1

1

0

0

0

1

0

0

0

0

0

1

0

1

1

0

1

1

1

0

0

1

1

1

1

1

1

0

1

Свойства элементарных булевых функций (Законы алгебры логики)

  1. Коммутативность:

x & y = y & x x / y = y / x

x  y = y  x x  y = y  x

x  y = y  x x  y  y  x

x ~ y = y ~ x

  1. Ассоциативность:

x & (y & z) = (x & y) & z x  (y  z)  (x  y)  z

x  (y  z) = (x  y)  z x / (y / z)  (x / y) / z

x  (y  z) = (x  y)  z x  (y  z)  (x  y)  z

x ~ (y ~ z) = (x ~ y) ~ z

  1. Дистрибьютивность:

x & (y  z) = (x & y)  (x & z) (Дистрибьютивность конъюнкции относительно дизъюнкции)

x  (y & z) = (x  y) & (x  z) (Дистрибьютивность конъюнкции относительно дизъюнкции)

(x  y) & z = (x & y)  (x & z)

(x & y)  z  (x  y) & (x  z)

  1. Двойное отрицание:

  1. Законы де Моргана:

  1. x & x = x x  x = x x  x = 0 x ~ x = 1 x  x = 1

x & = 0 x  = 1 x  = 1 x ~ = 0 x  =

x & 0 = 0 x  0 = x x  0 = x x ~ 0 = x  0 =

x & 1 = x x  1 = 1 x  1 = x ~ 1 = x x  1 = 1

0  x = 1

1  x = x

  1. Выражение эквивалентности другие операции:

x ~ y = = x  y  1

x ~ y = ( y) & (x  )

x ~ y = (x & y)  ( & )

  1. Выражение суммы по модулю 2 через другие операции:

x  y = (x &)  (& y)

  1. Выражение импликации через другие операции:

x  y = x  y = x & y  x  1

x  = y  x  y =  y

x  y =

  1. x  (y & z) = (x  y) & (x  z)

(x & y)  z = x  (y  z)

x  y = (x  y)  y

  1. Законы поглощения:

x & (x  y) = x

x  (x & y) = x

Доказательство: 1) x  (x & y) = (x & 1)  (x & y) = x & (1  y) = x & 1 = x.

2) x & (x  y) = (x & x)  (x & y) = x  (x & y) = [по пункту 1] = x.

Порядок действий в формулах алгебры логики

Если в выражениях нет скобок, то очередность выполнения логических операций следующая:

  1. «отрицание»;

  2. «конъюнкция»;

  3. «дизъюнкция»;

  4. «сумма по модулю 2» и «эквивалентность»;

  5. «логическое следование».

Пример:

С помощью законов алгебры логики можно упрощать исходные формулы и получать новые.

Существует еще один способ для получения тождеств алгебры логики. Он основан на использовании принципа двойственности.

Принцип двойственности

Определение. Функция f*(x1, …, xn) =называется двойственной функции f(x1, …, xn).

Пример: (построение функции, двойственной к исходной)

x

y

z

f(x, y, z)

0

0

0

0

1

0

0

0

1

0

1

0

0

1

0

1

0

1

0

1

1

0

1

0

1

0

0

1

0

1

1

0

1

0

1

0

1

1

0

1

0

1

1

1

1

1

0

1

Таблица для двойственной функции f*(x, y, z) при упорядоченном наборе значений переменной получается из таблицы для функции f(x, y, z) построением функции отрицания и переворачиванием столбца значений от функции .

Таблица функций, двойственным к элементарным:

0

0*

1

1*

x

x*

0

1

1

1

0

0

0

1

0

0

1

1

0

1

1

0

0* = 1 1* = 0 x* = x

x

y

x & y

(x & y)*

x

y

x  y

(x  y)*

0

0

0

1

0

0

0

0

1

0

0

1

0

1

1

0

1

1

0

0

1

0

0

1

1

1

0

1

0

0

1

1

1

0

1

1

1

1

0

1

(x & y)* = x  y (x  y)* = (x & y)

Из определения двойственности вытекает:

f** = (f*)* = = = f  f** = f

Функция f двойственна к f*

Определение. Если функция f(x1, …, xn) =, то функция f(x1, …, xn) называется самодвойственной.

Теорема двойственности

Если (x1, …, xn) = f(f1(x11, …, ), …, fm(xm1, …, )), где (x1, …, xn) – переменные, входящие в наборы (x11, …, ), …, (xm1, …, ), то *(x1, …, xn) = f(f1*(x11, …, ), …, fm*(xm1, …, )).

Доказательство: *(x1, …, xn)  [по определению]  = [по условию] =

= = =

= = [по определению двойственной функции] =

=

Пример: f1(x, y) = x & y, f2(x, y) = x  y, f3(x) = .

 = = f2(f1(x1, x2), f1(f3(x3), x4))

* = f2*(f1*(x1, x2), f1*(f3*(x3), x4)) = f1(f2(x1, x2), f2(f3(x3), x4)) = .

Принцип двойственности

Если формула A = C[f1, …, fs] реализует формулу f(x1, …, xn), то формула C[f1, …, fs], полученная из формулы f1, …, fs на f1* …, fs* , реализует f*(x1, …, xn). Эту формулу называют двойственной к А и обозначают А*. Для формулы А над множеством P = {0, 1, x, , &, } принцип двойственности записывается так:

«Для получения двойственной формулы надо заменить 0 на 1, 1 на 0, & на ,  на & и сохранить функции x и

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

Соседние файлы в папке Дискретка_лекции