Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Введение в булеву, линейную, векторную, тензорную алгебру. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]