Вы находитесь на странице: 1из 8

Алгоритмы и структуры данных Теоретические сведения

БУЛЕВА АЛГЕБРА КАК МАТЕМАТИЧЕСКАЯ СИСТЕМА

Формально любая математическая система обычно состоит из множества элементов,


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

ОСНОВНЫЕ ЛОГИЧЕСКИЕ ФУНКЦИИ

Среди множества операций выделяются основные логические функции.

1. Конъюнкция (логическое умножение) – бинарная функция И.

2. Дизъюнкция (логическое сложение) – бинарная функция ИЛИ.

3. Инверсия (логическое отрицание) – унарная функция НЕ.

Приоритет операций: И, ИЛИ, НЕ.

Выделяют несколько производных логических функций:


 И - НЕ
 ИЛИ - НЕ
 Исключающее ИЛИ (неравнозначность)
 Исключающее ИЛИ - НЕ
Алгоритмы и структуры данных Теоретические сведения

ТАБЛИЦА ИСТИННОСТИ И ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ

Существуют 2 формы записи логических функций: табличная и аналитическая.


При табличном способе перечисляются значения всех аргументов и записываются
значения функций при соответствующих наборах аргументов. Такая таблица называется
таблицей истинности.
Например:
Комбинация значений Результат
аргументов функции функции Значение
Результат
Х У «И» аргумента
0 0 0 функции «НЕ»
функции Х
0 1 0 0 1
1 0 0 1 0
1 1 1

Ниже приведены таблицы истинности для функций, зависящих от двух переменных

Значения Функция
аргументов
функции
Х1 Х2 «И» «ИЛИ» «И-НЕ» «ИЛИ- Исключающ
НЕ» ее «ИЛИ»
0 0 0 0 1 1 0
0 1 0 1 1 0 1
1 0 0 1 1 0 1
1 1 1 1 0 0 0

При аналитическом способе представления аргументы функции связываются между


собой с помощью элементарных операций.
Например:
1. Логическое умножение (И): F(X,Y)=X&Y=X Y=XY
2. Логическое сложение (ИЛИ): F(X,Y)=X+Y=XY

3. Логическое отрицание (НЕ): F(X) = X=Х


Алгоритмы и структуры данных Теоретические сведения

4. Логическое умножение с инверсией (И-НЕ): F(X,Y) = X&Y = XY


5. Логическое сложение с инверсией (ИЛИ-НЕ): F(X,Y)=X+Y = XY
6. Исключающее ИЛИ: F(X,Y)=XY

С помощью логических функций и круглых скобок можно построить сложные


логические выражения.

Например: F(X,Y,Z)= (XY)Z


Построим по логическому выражению таблицу истинности функции F(X,Y,Z):
Возможные комбинации значений
Результат
аргументов функции
функции «F»
Х Y Z
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0

Иногда применяется обратная задача: по существующей таблице истинности


(определена задачей) необходимо построить логическое выражение.

ОПТИМИЗАЦИЯ (УПРОЩЕНИЕ) ЛОГИЧЕСКИХ ВЫРАЖЕНИЙ


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

Правило Математическая запись


Ассоциативность коньюнкции и x1 & (x2& x3 )= (x1 & x2 )& x3 =x1 & x2& x3
дизьюнкции x1 + (x2+ x3 )= (x1 + x2 )+ x3 =x1 + x2+ x3
Алгоритмы и структуры данных Теоретические сведения

Коммутативность коньюнкции и x1 & x2= x2 & x1


дизьюнкции x1 + x2= x2 + x1
Дистрибутивность коньюнкции x1 & (x2+x3 )= x1 & x2 + x1 &x3
относительно дизьюнкции
Дистрибутивность дизьюнкции x1+(x2& x3 )= (x1 +x2)& (x1 +x3 )
относительно коньюнкции
Идемпотентность (отсутствие степеней x&x=x
и коэффициентов) x+x=x
Закон двойного отрицания: X =Х
Свойства констант x&1=х x&0=0
x +1 = 1 x+0=x
0 =1 1 =0
Правила де Моргана
(x1 & x2 )= X 1 + X 2

 (x1 + x2 )= X 1 & X 2

Закон противоречия x&x 0


Закон исключенного третьего: x  x 1
Поглощение x  xy  x
Склеивание xy  x y  x

НОРМАЛЬНЫЕ И СОВЕРШЕННЫЕ ФОРМЫ ЗАПИСИ


Среди всего множества записей функции выделяют нормальные и совершенные
формы.
Различают две нормальные формы записи:
 Дизъюнктивная нормальная форма (ДНФ) - дизъюнкция конечного числа
элементов, каждый из которых представляет собой конъюнкцию аргументов или
их инверсий («сложение произведений»). Например: F(X,Y,Z)=XY + XYZ
 Конъюнктивная нормальная форма (КНФ) - конъюнкции конечного числа
элементов, каждый из которых есть дизъюнкция аргументов или их инверсий
(«произведение сумм»). Например: F(X,Y)=(X+Y)(X+Y)
Совершенная форма – форма, если в каждый элемент выражения (сумму или
произведение) входят все аргументы. Например:
Алгоритмы и структуры данных Теоретические сведения

F(X,Y,Z)=XY + XYZ – несовершенная форма


F(X,Y)=(X+Y)(X+Y) – совершенная форма

ПОЛУЧЕНИЕ ЛОГИЧЕСКИХ ВЫРАЖЕНИЙ ПО ТАБЛИЦАМ ИСТИННОСТИ


Если для функции известна таблица истинности, т.е. значению аргументов
соответствует некоторое значение функции, то можно построить соответствующее
логическое выражение. Удобно строить СДНФ или СКНФ, которые впоследствии можно
оптимизировать.
Для построения используют понятие конституенты и антиконституенты.

Конституента – произведение аргументов функции или их инверсий, принимающее


значение 1 при заданном наборе аргументов.
Антиконституента – сумма аргументов функции или их инверсий, принимающее
значение 0 при заданном наборе аргументов.

Например: Для функции с двумя аргументами конституенты и антиконстиутенты


имеют вид:
Возможные комбинации
Конституенты Антиконституенты
значений аргументов функции
(произведение=1) (сумма=0)
X Y
0 0 XY XY
1 0 XY XY
0 1 XY XY
1 1 XY XY

Для записи функции в СДНФ нужно сложить все конституенты, для которых
значение функции равно 1, а для записи в СКНФ нужно взять произведение
антиконституент, для которых функция равна 0.
Алгоритмы и структуры данных Теоретические сведения

Например: функция двух аргументов имеет следующую таблицу истинности:


Комбинация значений
Значение
аргументов функции
функции
Х У
0 0 1
0 1 1
1 0 0
1 1 0

СДНФ F(X,Y) = X &Y + X& Y


F(1,1) = 1&1+1&1 =0+0=0
Проверка: F(0,0) = 0&0+0&0 =1+0=1
CКНФ F(X,Y) = (X + Y) (X +Y)
F(0,1) = 0&1+0&1 =0+1=1
Проверка: F(0,0) = (0+0)(0+0) =1&1=1
F(1,0) = 1&0+1&0 =0+0=0
F(0,1) = (0+1)(0+1) =1&1=1
F(1,0) = (1+0)(1+0) =0&1=0

F(1,1)=(1+1)(1+1)=1&0=0
Одну и туже функцию можно записать и в СКНФ, и в СДНФ. Очевидно, что если в
таблице истинности меньше 1, то берется СДНФ; если меньше 0, то СКНФ; если равны, то
СДНФ.

ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ И ЛОГИЧЕСКИЕ СХЕМЫ


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

 Элемент «НЕ» (инвертор) выполняет инверсию входного сигнала; имеет один вход
и один выход. Обозначение на схемах:

X X
Алгоритмы и структуры данных Теоретические сведения

 Элемент «ИЛИ» выполняет логическую операцию «ИЛИ» (дизъюнкцию) над


двумя или более аргументами (входными сигналами). Имеет один выход. Обычно
элемент имеет от двух до 8-ми входов.
Обозначается на схемах:

X
1 X+Y
Y

 Элемент «ИЛИ-НЕ» выполняет логическую функцию «ИЛИ-НЕ», отличается от


элемента «ИЛИ» наличием инвертора на выходе.
Обозначение на схеме:

Х
1 Х+Y
Y

 Элемент «И» выполняет логическую операцию «И» над входными сигналами


имеет один выход и 2-8 выходов.
Обозначение на схеме:

X & XY
Y

 Элемент «И-НЕ» выполняет логическую операцию «И-НЕ», отличается от


элемента «И» наличием инвертора на выходе.
Обозначение на схеме:

X
XY
Y
&
Алгоритмы и структуры данных Теоретические сведения

Например. Построить схему для выражения


F(A, B)=A&B + A&B

A A
& A&B
1 A&B + A&B

&

A&B
B B