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

DisMathTPU_new

.pdf
Скачиваний:
63
Добавлен:
29.05.2015
Размер:
753.84 Кб
Скачать

Пример (функция та же и представлена на левой матрице). Пере- менная x3 функции фиктивна. Справа показан результат ее удаления.

 

 

 

 

3 2

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

1

 

 

 

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

Пример. Рассмотрим функции f1(x1; x2) è f2(x1; x2). Удалив фиктивную переменную x1 функции f1(x1; x2) и фиктивную переменную x2 функции f2(x1; x2), получим равные функции f1(x2) = f2(x1) = f(x). Значит, исходные функции равны с точностью до фиктивных переменных.

x1 x2

f1(x1; x2)

f2(x1; x2)

 

x2

f1(x2)

 

x1

f2(x1)

 

0

0

0

0

0

0

0

0

 

 

 

 

 

 

 

 

 

 

0

1

1

0

1

1

1

1

1

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.5. Элементарные булевы функции

Рассмотрим все булевы функции двух и менее аргументов. При n = 0 имеем две функции: константу 0 и константу 1.

При n = 1 имеем четыре функции:

x

f0

f1

f2

f3

0

0

0

1

1

1

0

1

0

1

 

 

 

 

 

Функции f0(x) è f3(x) зависят от x несущественно, поэтому равны двум рассмотренным ранее функциям. Введем названия и обозначе- ния для остальных двух функций:

f1(x) = x тождественная функция (читается x ),

f2(x) = x функция отрицания (инверсия, НЕ ) (читается не x ).

21

При n = 2 имеем 16 функций:

x1 x2

f0

f1

f2

f3

f4

f5

f6

f7

f8

f9

f10

f11

f12

f13

f14

f15

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

1

0

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

1

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

^

,!

 

-

 

 

_

#

 

 

 

 

!

=

 

Функции f0; f3; f5; f10; f12; f15 содержат фиктивные переменные и поэтому уже рассмотрены ранее. Обозначения остальных функций указаны в нижней строке таблицы, а названия их таковы:

f1(x1; x2)

=

x1 ^ x2

конъюнкция (логическое умножение, И )

 

 

x1 _ x2

(читается x1

è x2 ),

f7(x1; x2)

=

дизъюнкция (логическое сложение, ИЛИ )

 

 

 

(читается x1

èëè x2 ),

f6(x1; x2) = x1 x2

f9(x1; x2) = x1 x2

f8(x1; x2) = x1 # x2

f14(x1; x2) = x1=x2

f13(x1; x2) = x1 ! x2

f2(x1; x2) = x1 ,! x2

дизъюнкция с исключением (сложение по модулю 2 ) (читается x1 ïëþñ x2 ),

эквивалентность

(читается x1 эквивалентно x2 ),

стрелка Пирса (НЕ-ИЛИ ) (читается x1 стрелка x2 ),

штрих Шеффера (НЕ-И ) (читается x1 штрих x2 ),

импликация (логическое следование ) (читается x1 имплицирует x2 ),

не импликация

(читается x1 не имплицирует x2 ),

f11(x1; x2) = x1 x2 обратная импликация

(читается x1 обратно имплицирует x2 ), f4(x1; x2) = x1 - x2 не обратная импликация

(читается x1 не обратно имплицирует x2 ).

Определение. Булевы функции двух и менее аргументов назовем

элементарными булевыми функциями.

Пары инверсных элементарных функций:

0 1; _ #; ^ =; ;

-; ! ,!;

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

22

3.6. Упражнения

Упр.1. Задать с помощью таблиц истинности, характеристических множеств, векторов, матриц Грея и интервалов следующие булевы

функции:

f1 : B3 ! B, функция равна единице на тех и только тех наборах,

вес которых больше единицы,

f2 : B4 ! B, функция равна единице на тех и только тех наборах,

которые представляют числа большие или равные 7,

f3 : B3 ! B, функция равна нулю на всех наборах с нечетным весом, и только на них.

Упр.2. Найти все максимальные интервалы булевых функций и выделить из них ядерные интервалы. Какие точки функций являются ядерными?

 

 

 

 

 

 

 

 

3 2

 

 

 

 

 

3 2

 

 

 

 

 

3 2

 

 

 

 

 

 

 

3 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

1

 

 

 

 

1

 

 

 

 

1

 

 

 

 

 

 

 

Упр.3. Привести примеры таблиц истинности булевых функций: f1 : B3 ! B, функция принимает различные значения на противо-

положных наборах,

f2 : B3 ! B : f( ) f( ) åñëè ,

f3 : B3 ! B, вес столбца значений функции является целой степенью двойки.

Упр.4. Шоссе пересекает железная дорога, на перекрестке имеются шлагбаумы. По обейм сторонам шоссе у полотна дороги расположены датчики, реагирующие на проходящий поезд. Расстояние между датчиками меньше длины любого поезда. Шлагбаум должен быть опущен, когда расстояние от поезда до шоссе меньше, чем расстояние от шоссе до любого датчика, и поднят в противном случае. Построить таблицу истинности булевой функции, описывающей управление шлагбаумами.

Упр.5. Соревнования обслуживают три судьи, один из них главный. Вес считается поднятым, если за проголосовало большинство судей, в том числе и главный. Построить таблицу истинности булевой функции, описывающей такое голосование.

23

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

Упр.7. Найти и удалить фиктивные переменные булевых функций, заданных таблицей истинности.

x y z

f1

f2

f3

f4

f5

f6

f7

f8

0

0

0

0

0

1

0

1

1

1

0

0

0

1

0

1

0

1

0

1

1

1

0

1

0

1

1

0

0

0

0

1

0

0

1

1

1

0

1

1

0

1

1

1

1

0

0

1

0

1

0

0

1

0

1

1

0

1

1

1

0

1

0

0

0

0

1

1

0

0

1

0

0

0

0

0

1

1

1

1

0

0

1

1

1

1

0

0

 

 

 

 

 

 

 

 

 

 

 

Упр.8. Найти и удалить фиктивные переменные булевых функций, заданных на матрице Грея.

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 2

 

 

 

 

 

 

 

 

 

1 2

 

 

 

 

 

 

 

 

 

 

 

1 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 3

 

 

 

 

 

 

 

 

4 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 2

 

 

 

 

 

 

 

 

 

1 2

 

 

 

 

 

 

 

 

 

 

 

1 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Упр.9. Пусть булева функция f(x1; : : : ; xn) такова, что вес столбца ее значений равен 2m(2l 1), m 0, l 1. Какое максимально

возможное число фиктивных переменных может быть у нее?

Упр.10. Представить все элементарные булевы функции матрицами Грея и разбить их на пары инверсных функций.

24

4.Формулы и равносильности

4.1.Формула как способ задания функции

Определение (индуктивное). Пусть даны Ф множество символов функций и X множество символов переменных.

База индукции. Если fi символ n-местной функции из множества Ф, а x1; x2; : : : ; xn переменные из множества X, то последовательность символов fi(x1; x2; : : : ; xn) формула над Ф и X.

Индуктивный переход. Если fj символ m-местной функции из Ф, а A1; A2; : : : ; Am переменные из X или формулы, то последовательность символов fj(A1; A2; : : : ; Am) формула над Ф и X, а

A1; A2; : : : ; Am ее подформулы.

Заключительная фраза. Других формул нет.

Если множество Ф = f0; 1; ; ; _; ^; ; ; !; ; ,!; -; #; =g, а множество X = fa; b; : : : ; z; x1; x2; : : : ; xng, то формулу над данными множествами Ф и X договоримся называть просто формулой (обратим

внимание на пустой символ, стоящий в множестве

Ф после 1 это

символ тождественной функции).

( (x; y); (z)).

 

Примеры.

^

(c; a),

#

(b; c), (x),

 

 

 

 

_

 

Эти формулы написаны по всем правилам, оговоренным в определении, но мы будем использовать более привычный и уже введенный нами способ записи формул для элементарных булевых функций: c ^ a; b # c; x и т.д.

Чтобы указать порядок подстановки подформул A1; A2; : : : ; Am â формулу, то есть порядок вычисления значения формулы, будем брать все подформулы, кроме инверсии, в скобки. Договоримся обозначать формулы большими латинскими буквами.

Пример. Последняя формула предыдущего примера примет вид

F = (x y) _ z.

Разрешим опускать скобки вокруг конъюнкции и те скобки, которые бы указывали, что функции вычисляются в порядке их следования слева направо. Кроме того, разрешим опускать знак конъюнкции. Все это означает, что при вычислении по формуле конъюнкция имеет приоритет, а остальные функции вычисляются слева направо, но с учетом скобок.

Пример. Формула F = (x (y ^ z)) _ (x ! z) примет вид

F = x yz _ (x ! z).

25

Определение. Будем говорить, что формула F задает булеву функцию f(x1; : : : ; xn), а функция реализует формулу, и в этом слу- чае использовать обозначение Ff .

Пример. Построим таблицу истинности функции f, реализующей предыдущую формулу Ff = x yz _ (x ! z). Порядок вычисления значений подформул обозначен цифрами внизу таблицы. Столбец зна- чений функции выписан справа в рамке.

x y z

x yz _ (x !

 

)

f(x; y; z)

 

z

 

0

0

0

0

0

1

1

1

 

1

 

0

0

1

0

0

1

1

0

 

1

 

0

1

0

0

0

1

1

1

 

1

 

0

1

1

1

1

1

1

0

 

1

 

1

0

0

1

0

1

1

1

 

1

 

1

0

1

1

0

1

0

0

 

1

 

1

1

0

1

0

1

1

1

 

1

 

1

1

1

0

1

0

0

0

 

0

 

 

 

2

1

5

4

3

 

 

Определение. Формулу назовем тождественно истинной (обозначается F 1), если на всех наборах она принимает значение 1, и

тождественно ложной (обозначается F 0), если на всех наборах

она принимает значение 0.

Пример. Исследуем формулу F = x _ x y _ y z _ x z, построив

по ней таблицу истинности (здесь мы демонстрируем другой способ построения таблицы истинности построчный).

x y z

 

 

 

 

x _

 

 

y _

 

z _

 

 

 

 

x

y

x

z

 

 

 

0 _

 

0 _

 

0 _

 

 

 

= 0 _ 0 _ 0 _ 1 = 1

0

0

0

0

0

0

0

 

 

 

0 _

 

0 _

 

1 _

 

 

 

= 0 _ 0 _ 1 _ 0 = 1

0

0

1

0

0

0

1

 

 

 

0 _

 

1 _

 

0 _

 

 

 

= 0 _ 1 _ 0 _ 1 = 1

0

1

0

0

1

0

0

 

 

 

0 _

 

1 _

 

1 _

 

 

 

= 0 _ 1 _ 0 _ 0 = 1

0

1

1

0

1

0

1

 

 

 

1 _

 

0 _

 

0 _

 

 

 

= 1 _ 0 _ 0 _ 0 = 1

1

0

0

1

0

0

0

 

 

 

1 _

 

0 _

 

1 _

 

 

 

= 1 _ 0 _ 1 _ 0 = 1

1

0

1

1

0

0

1

 

 

 

1 _

 

1 _

 

0 _

 

 

 

= 1 _ 0 _ 0 _ 0 = 1

1

1

0

1

1

1

0

 

 

 

1 _

 

1 _

 

1 _

 

 

 

= 1 _ 0 _ 0 _ 0 = 1

1

1

1

1

1

1

1

Формула является тождественно истинной.

26

4.2. Равносильность формул

Определение. Две формулы F 0 è F 00 называются равносильными, если они задают равные функции. В этом случае пишут F 0 = F 00.

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

Пример. Докажем равносильность x _ y = x y, построив таблицы истинности для левой и правой формул.

x y x _ y x y

0

0

1

1

 

0

1

0

0

 

1

0

0

0

 

1

1

0

0

Пример. (x ! y)_1 = 1. Для доказательства этой равносильности

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

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

4.3.Основные равносильности

Êосновным относят следующие равносильности, которые рекомендуется запомнить и применять при упрощении формул.

Свойства 0 и 1: x0 = 0,

x1 = x,

x _ 0 = x,

x _ 1 = 1,

x 0 = x,

x 1 =

x

.

Закон двойного отрицания : x = x. Закон противоречия : x x = 0.

Закон исключенного третьего : x _ x = 1. Законы идемпотентности : xx = x,

x _ x = x.

Законы де Моргана: xy = x _ y, x _ y = x y.

27

Законы коммутативности : x _ y = y _ x, x y = y x, xy = yx.

Законы ассоциативности : x _ (y _ z) = (x _ y) _ z = x _ y _ z, x (y z) = (x y) z = x y z, x(yz) = (xy)z = xyz.

Законы дистрибутивности : x(y _ z) = xy _ xz,

x _ yz = (x _ y)(x _ z), x(y z) = xy xz.

Законы поглощения: x _ xy = x, x(x _ y) = x.

Законы склеивания: xy _ xy = y,

(x _ y)(x _ y) = y.

Закон обобщенного склеивания : xy _ xz = xy _ xz _ yz:

4.4. Свойства 0 и 1

Свойства 0 и 1 для дизъюнкции, конъюнкции и суммы по модулю 2 приведены в списке основных равносильностей. Для остальных функций аналогичные свойства при необходимости можно получать самостоятельно построением таблиц истинности.

Пример. Свойства 0 и 1 для импликации.

x

x ! 0

 

x ! 1

0 ! x

1 ! x

0

1

 

 

 

1

1

 

0

 

1

0

 

 

 

1

1

 

1

 

Отсюда получаем следующие равносильности:

x ! 0 =

 

,

x ! 1 = 1,

0 ! x = 1, 1 ! x = x.

x

4.5. Упражнения

Упр.1. Построить таблицы истинности функций, заданных формулами:

F1 = xy ! (y _ z),

F2 = x ! y _ (x ! z), F3 = y (x _ z) (y z), F4 = x (x # y) _ (y # z).

28

Упр.2. Проверить равносильности:

1)x _ (y z) = (x _ y) (x _ z),

2)x ! (y z) = (x ! y) (x ! z),

3)x(y z) = xy xz,

4)x ! (y _ z) = (x ! y) _ (x ! z),

5)x (y ! z) = (x y) ! (x z),

6)x ! (y ! z) = (x ! y) ! (x ! z).

Упр.3. Доказать основные равносильности, пользуясь различными способами.

Упр.4. Проверить, являются ли формулы тождественно истинными либо тождественно ложными:

F1 = x ! yz _ y _ z,

F2 = (x z) (xy z) ! y ; F3 = (x y # (y z)) yz, F4 = x # y # (y # z) ! xz.

5. Двойственная функция и двойственная формула

5.1. Двойственная функция

Определение. Булева функция f (x1; : : : ; xn) называется двойственной булевой функции f(x1; : : : ; xn), если она получена из функции f(x1; : : : ; xn) инверсией всех аргументов и самой функции, то есть

f (x1; : : : ; xn) = f(x1; : : : ; xn):

Пример. Построим функцию, двойственную стрелке Пирса.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x y

x # y

 

 

 

 

#

 

 

 

 

 

 

 

x

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

#

 

 

= 1

 

0

0

1

 

0

0

 

 

 

 

 

#

 

 

= 1

 

0

1

0

 

0

1

 

 

 

 

 

#

 

= 1

 

1

0

0

 

1

0

 

 

 

 

 

#

 

= 0

1

1

0

 

1

1

Пусть булева функция f(x1; : : : ; xn) задана формулой Ff . Чтобы получить формулу Ff0 для функции f (x1; : : : ; xn), двойственной функции f(x1; : : : ; xn), необходимо, согласно определению, проинвертировать все переменные, пользуясь при этом законом двойного отрица-

29

ния, и саму функцию. При этом формулу Ff0 можно упростить (убрать длинную инверсию над формулой), заменив символ функции, которая вычисляется последней, на символ инверсной ей функции.

Пример. Пусть Ff = x # (y (x _ yz)) ! (y x). Последней должна вычислятьси импликация, инверсная ей функция это обратная импликация, поэтому формула для двойственной функции примет следующий вид

Ff0 = x # (y (x _ y z)) ! (y x) = x # (y (x _y z)) ,! (y x):

Алгоритм построения таблицы истинности двойственной функции (основан на определении двойственной функции).

Инверсия всех переменных превращает наборы в их антиподы. Поскольку в таблице истинности антипод первого набора расположен последним, антипод второго набора предпоследним и так далее, то для построения функции f(x1; : : : ; xn) нужно перевернуть вектор-столбец

значений исходной функции f(x1; : : : ; xn), а для получения функции

f(x1; : : : ; xn) еще и инвертировать компоненты столбца.

Пример. Построим функцию, двойственную стрелке Пирса.

x y

x # y

 

 

#

 

 

 

 

#

 

 

 

 

 

 

x

y

x

y

 

 

 

0

0

1

 

0

 

 

 

1

 

 

 

 

 

 

0

1

0

 

0

 

 

 

1

 

 

 

 

 

 

1

0

0

 

0

 

 

 

1

 

 

 

 

 

 

1

1

0

 

1

 

 

 

0

 

 

 

 

 

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

 

 

 

0 1;

 

_ ^;

 

 

# =;

;

,!;

! - :

Тождественная функция и инверсия двойственны каждая самой себе. Для доказательства можно воспользоваться алгоритмом построения таблицы истинности двойственной функции (именно так предыдущий пример демонстрирует, что штрих Шеффера двойственен стрелке

Пирса), или применить равносильные преобразования.

Пример. Покажем, что дизъюнкция двойственна конъюнкции (применив законы де Моргана и двойного отрицания):

(x _ y) = (x _ y) = x y = x y:

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]