Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Введение в булеву, линейную, векторную, тензорную алгебру. Учебно-методическое пособие
.pdf
11
Пример 1.6. Составить таблицу истинности сложного логиче-
ского выражения .
Решение. А, В, С – три простых высказывания, поэтому n = 3
и количество строк = 23 +1 = 9
количество столбцов = 3 + 3 = 6
А В С
не A
B или C
1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 0
0
1 . 2 . Б у л е в а а л г е б р а
О: Простейшая булева алгебра состоит из множества B = {0, 1}
вместе с определенными на нем операциями дизъюнкции ( ), конъ-
юнкции ( ) и отрицания ( ) •
Для булевых переменных p и q (т. е. переменных, принимающих
значения 0 и 1) можно построить таблицы, определяющие действия
операций , p q и p q :
( )
D A B C= не и или
( )
D A B C= не и или
p
p
0 1
1 0
p q p q p
q
0 0 0 0
0 1 1 0
1 0 1 0
1 1 1 1
p

12
Эти таблицы напоминают таблицы истинности логических операций не, или и и, с которыми мы встретились в п. 1.1 данной главы.
Действительно, мы можем легко трансформировать данные таблицы
в таблицы истинности, возникающие в логике высказываний, заменив
переменные p и q на высказывания P и Q и используя истинностные
значения Л и И вместо 0 и 1 соответственно.
Схожесть названий и форм законов булевой алгебры, логики
высказываний, а также теории множеств не случайна. По сути булева
алгебра является обобщением этих теорий. Соответствие между булевыми операциями, логическими операторами логики высказываний
и операциями над множествами устанавливается в следующей таблице:
Логические операторы
Операции над множествами
Булевы операции
не
–
–
или
и
О: Два булевых выражения называются эквивалентными, если
они имеют одинаковые таблицы истинности •
Мы можем комбинировать булевы переменные с помощью операций ( ), ( ) и ( ), получая булевы выражения (формулы), так же,
как мы строили составные высказывания из более простых, компонуя
их с помощью логических операций. Законы булевой алгебры (основные эквивалентности):
Законы коммутативности:
p q = q p,
p q = q p;
Законы ассоциативности:
p (q r) = (p q) r,
p (q r) = (p q) r;
Законы дистрибутивности:
p (q r) = (p q) (p r),
p (q r) = (p q) (p r);
Законы идемпотентности:
p p = p,
p p = p;
Законы поглощения:
p (p q) = p,
p (p q) = p;

13
Законы де Моргана:
Комплементность:
Закон снятия двойного отрицания:
Убедиться в справедливости законов булевой алгебры можно
так же, как мы проверяли эквивалентность высказываний, строя таблицы истинности.
Пример 1.7. Докажите закон дистрибутивности:
p (q r) = (p q) (p r) .
Решение. Требуемые таблицы истинности:
p q r p q p r q r
p (q r) (p q) (p r)
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 0 1
0 1 1 0 0 1
1 0 0 0 0 0
1 0 1 0 1 1
1 1 0 1 0 1
1 1 1 1 1 1
0 0
0 0
0 0
0 0
0 0
1 1
1 1
1 1
Поскольку два последних столбца таблицы полностью совпадают, булевы выражения p (q r) и (p q) (p r) эквивалентны.
О: Булевой функцией от n булевых переменных p1, p2, …, pn
называется такая функция f: Bn B, что f (p1, p2, …, pn) – булево выражение (формула). Одна и та же булева функция может быть задана разными формулами •
Для преобразования формул, кроме законов булевой алгебры,
необходимы следующие теоремы:
Т.1: (о подстановке формулы вместо переменной).
( ) ,p q p q =
( ) ,p q p q =
( ) 1,pp=
( ) 0,pp=
.pp=
→

14
Пусть , f – некоторая
формула. Тогда при подстановке вместо pi формулы f равносильность
(эквивалентность) сохраняется.
Т.2: (о замене подформул).
Пусть , Сh – формула,
содержащая h, Сg – результат замены в ней h на g. Тогда .
Рассмотрим несколько примеров применения законов булевой
алгебры и представленных выше теорем.
Пример 1.8. Доказать, что .
Решение. На основании закона де Моргана имеем .
На основании закона снятия двойного отрицания имеем
.
Пример 1.9. Покажите, что булево выражение
эквивалентно p.
Решение. Сделаем несложные преобразования.
= = (закон де Моргана);
= = (снятие двойного отрицания);
= = (закон дистрибутивности);
= = (комплементность);
= p (по определению ).
Произвольную булеву функцию можно записать в стандартном
виде – в дизъюнктивной нормальной форме. Начнем с небольшого при-
мера. Рассмотрим булеву функцию m(p, q, r) от булевых переменных p,
q и r, чья таблица истинности следующая:
p q r
m
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0
0
0
1
0
0
0
0
( ) ( )
1 2 1 2
, , ..., , , ...,
nn
h p p p g p p p=
hg=
( ) ( )
1 2 1 2
, , ..., , , ...,
nn
h p p p g p p p=
hg
СC=
a b a b =
a b a b =
a b a b a b = =
( ) ( )p q p q
( ) ( )p q p q
(( ) ) ( )p q p q
( ) ( )p q p q
()p q q
0p

15
Функция m – пример минтерма, т. е. булевой функции, которая
принимает значение 1 только на одном наборе значений аргументов.
Так как m (p, q, r) = 1, только если p = 0, q = 1 и r = 1, то
. Выражение называют элементарной
конъюнкцией.
Пример 1.10. Объясните, каким образом любой минтерм можно
записать в виде элементарной конъюнкции, т. е. как конъюнкцию переменных pi или их отрицаний m(p1, p2, …, pr) .
Решение. Пусть m(p1, p2, …, pr) – минтерм. Тогда в последнем
столбце таблицы истинности функции m будет стоять только одна единица. Возьмем строку таблицы истинности, последний символ в которой – 1. Если в этой строке переменная pi = 1, то в элементарной конъюнкции, представляющей функцию m, участвует pi; а если переменная
pi = 0, то участвует .
Например, для минтерма из таблицы такой строкой является
последовательность 0, 1, 1, 1. Это означает, что m(0, 1, 1) = 1. Поэтому
Теперь, используя элементарные конъюнкции, мы запишем
произвольную булеву функцию как дизъюнкцию минтермов. Именно
такая форма и называется дизъюнктивной нормальной формой.
О: Дизъюнктивная нормальная форма − это дизъюнкция конъюнкций из аргументов и их отрицаний •
Можно доказать, что дизъюнктивная нормальная форма для
каждой функции определена единственным образом с точностью до перестановки элементарных конъюнкций.
Рассмотрим булеву функцию трех переменных f (p, q, r), чья
таблица истинности имеет следующий вид:
p q r
f
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0
1
0
1
1
0
0
0
( )
,,m p q r p q r=
p q r
i
p
( , , ) .m p q r p q r=

16
Единицы последнего столбца в этой таблице соответствуют
трем минтермам:
Таблица истинности функции f может быть получена наложением таблиц истинности выписанных минтермов.
Поскольку дизъюнкция с 1 «поглощает» все нули (иными словами, равно 1 тогда и только тогда, когда среди значений
fi найдется хотя бы одна 1, то наша функция f равна дизъюнкции трех
минтермов:
.
Это и есть нормальная дизъюнктивная форма функции f. Очевидно, в той же форме можно записать произвольную булеву функцию
с любым числом переменных.
Пример 1.11. Найдите дизъюнктивную нормальную форму бу-
левой функции
Решение. Запишем таблицу истинности функции f:
p q r
f
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0
1
0
0
0
1
1
1
Выпишем минтермы:
Следовательно, искомая дизъюнктивная нормальная форма:
Мы убедились на опыте, что любую булеву функцию можно
единственным образом представить в виде дизъюнкции минтермов.
Значит, каждая булева функция может быть выражена через две функции от двух аргументов: , и одной функции одной пере-
менной .
О: Множество функций, через которые можно выразить любую
булеву функцию, называется полной системой функций •
,p q r
,p q r
.p q r
12 sf f f
( ) ( ) ( )
( , , )f p q r p q r p q r p q r=
( ) ( ).f p q q r=
,p q r
,p q r
,pqr
.pqr
( ) ( ) ( )
( )
( , , )f p q r p q r p q r p q r p q r=
pq
pq
p

17
Используя это определение, можно сказать, что
– полная система функций. Однако можно ограни-
читься и меньшим количеством функций. Например, по закону де Моргана Следовательно, .
Значит, любую булеву функцию можно записать только с помощью двух операций: и , т. е. тоже полная система функ-
ций. Расплатой за малое количество операций, посредством которых
записывается функция, становится громоздкость формул.
Рассмотрим далее пример, где покажем, что полная система
функций может состоять только из одной функции.
Пример 1.12. Функция НЕ_И определяется формулой
Покажите, что {НЕ_И} – полная система функций.
Решение. Для решения задачи достаточно показать, что каждая
из функций , p q и p q может быть выражена через НЕ_И.
Ввиду закона идемпотентности
.
По закону де Моргана
Наконец,
Итак, {НЕ_И} – действительно полная система функций.
1 . 3 . К а р т а К а р н о
Рассмотрим вопрос упрощения выражения для булевой функции. Под упрощением мы подразумеваем переход к эквивалентному
выражению, которое использует меньше символов, чем исходное. Далее будем говорить об упрощении дизъюнктивной нормальной формы
{ , , }p q p q p
( ) .p q p q =
( )
p q p q =
{ , }p q p
( ).p q p q= НЕ_И
p
( )
p p p p p= = HE_И
( )
( ) ( )
( )
( ) ( )
p q p q p p q q
p p q q
= = =
=
HE_И HE_И
HE_И HE_И HE_И
( ) ( )
( ) ( )
p q p q p q
p q p q
= = =
=
HE_И
HE_И HE_И HE_И

18
булевой функции (как универсальной формы представления любой
функции). Для наглядности обсудим только булевы функции не более
чем от трех аргументов. При желании показанную технику можно
обобщить на функции с любым числом аргументов.
Прежде всего, записывая функцию, будем опускать символ
аналогично тому, как в обычной алгебре опускают символ умножения.
Например, будем писать вместо
Это выражение – дизъюнктивная нормальная форма. Его можно
упростить следующим образом:
по законам коммутативности и ассо-
циативности;
по закону дистрибутивности,
так как .
Полученное выражение использует меньше символов, чем исходная функция, значит, операция упрощения прошла успешно. Оказывается, что последовательность шагов, которые мы совершили, упрощая функцию, можно делать почти автоматически. Заметим, что на
первом шаге мы сделали перегруппировку: переставили и взяли
в скобки два минтерма, отличающиеся только в одном символе. Закон
дистрибутивности позволил нам на втором шаге вынести один минтерм
за скобки, исключив из него булеву переменную q.
Упрощение функций можно делать с помощью карты Карно.
Этот метод был изобретен в 1952 г. Эдвардом В. Вейчем и усовершенствован в 1953 г. Морисом Карно, физиком из Bell Labs, и был призван
помочь упростить цифровые электронные схемы.
О: Карта Карно – это наглядная схема, предназначенная для об-
наружения пар минтермов, которые можно сгруппировать и преобразовать в одно простое выражение •
В случае булевых функций трех переменных p, q и r карта
Карно представляет собой таблицу с двумя строками и четырьмя столбцами (рис. 1.1). Столбцы обозначены дизъюнкциями, которые можно
получить из двух переменных p и q и их отрицаний, а строки – пере-
менной r и ее отрицанием .
pqr pqr pqr
( ) ( ) ( ).p q r p q r p q r
()pqr pqr pqr prq prq pqr = =
()pr q q pqr= =
pr pqr=
1qq=
r

19
r
Рис. 1.1. Карта Карно для функции трех переменных
Метки расставлены таким образом, что от столбца к столбцу
в них происходит изменение ровно в одном символе. Ячейки карты
Карно соответствуют восьми минтермам, которые можно построить из
трех булевых переменных. Если нам дано булево выражение в дизъюнктивной нормальной форме, то в ячейки, соответствующие минтермам, участвующим в ней, мы записываем цифру 1. Например, карта
Карно булева выражения изображена на рис. 1.2.
r 1 1
1
Рис. 1.2. Карта Карно выражения
Затем предлагается «группировать» пары «соседних» единиц
в Карте Карно (похожих на ту, которая выделена на рис. 1.2). Такая
пара в нашем примере только одна. Она соответствует именно тем минтермам, которые мы объединили в сделанных ранее алгебраических
преобразованиях.
При некоторой разметке карты Карно (отвечающей требованию, при котором метки соседних столбцов отличились только одним
символом) может оказаться, что возможность группировки минтермов
будет скрыта.
Например, на карте Карно (рис. 1.3) выражения
не видно, что члены pqr и можно сгруппировать.
r 1 1
1
Рис. 1.3. Неудачное обозначение столбцов карты Карно выражения
pq
pq
pq
pq
r
pqr pqr pqr
pq
pq
pq
pq
r
pqr pqr pqr
pqr pqr pqr
pqr
pq
pq
pq
pq
r
pqr pqr pqr

20
Переобозначив столбцы с соблюдением основного требования,
получим альтернативную карту Карно (рис. 1.4). На ней уже члены для
группировки стоят рядом.
Следовательно,
r 1 1
1
Рис. 1.4. Альтернативная карта Карно выражения
Пример 1.13. Упростите булево выражение
Решение. Обратим внимание на рис. 1.5, где изображена соот-
ветствующая карта Карно.
r 1 1
1 1 1
Рис. 1.5. Карта Карно выражения
Из нее следует, что в данном выражении есть группа из четырех
минтермов: , которую обозначим через (А),
и группа из двух минтермов: , которую обозначим через (Б).
Сначала поработаем над группой (А):
Теперь займемся группой (Б):
.
Таким образом, исходное выражение упрощается до
( )
( ) .
pqr pqr pqr pqr pqr pqr
pqr pr q q pqr pr
= =
= =
pq
pq
pq
pq
r
pqr pqr pqr
.pqr pqr pqr pqr pqr
pq
pq
pq
pq
r
pqr pqr pqr pqr pqr
pqr pqr pqr pqr
pqr pqr
( ) ( )
( ) .
pqr pqr pqr pqr p p qr p p qr
qr qr q r r q
= =
= = =
()qqr pqr pr q q pr = =
.q pr
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
