DisMathTPU
.pdf21
Функции f0; f3; f5; f10; f12; f15 содержат фиктивные переменные и по-
этому уже рассмотрены ранее. Обозначения остальных функций указаны в нижней строке таблицы, а названия их таковы:
f1(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
f11(x1; x2) = x1 x2
конъюнкция (логическое умножение, И ) (читается x1 è x2 ),
дизъюнкция (логическое сложение, ИЛИ ) (читается x1 èëè x2 ),
дизъюнкция с исключением (сложение по
модулю 2 ) (читается x1 ïëþñ x2 ),
эквивалентность
(читается x1 эквивалентно x2 ),
стрелка Пирса (НЕ-ИЛИ ) (читается x1 стрелка x2 ),
штрих Шеффера (НЕ-И ) (читается x1 штрих x2 ),
импликация (логическое следование ) (читается x1 имплицирует x2 ),
не импликация
(читается x1 не имплицирует x2 ),
обратная импликация
(читается x1 обратно имплицирует x2 ),
f4(x1; x2) = x1 - x2 не обратная импликация
(читается x1 не обратно имплицирует x2 ). Определение. Булевы функции двух и менее аргументов назовем эле-
ментарными булевыми функциями.
Пары инверсных элементарных функций:
0 1; _ #; ^ =; ; |
-; ! ,!; |
кроме того, пару составляют тождественная функция и инверсия.
3.6. Упражнения
Упр.1. Задать с помощью таблиц истинности, характеристических множеств, векторов, матриц Грея и интервалов следующие булевы функции: f1 : B3 ! B, функция равна единице на тех и только тех наборах, вес
которых больше единицы;
f2 : B4 ! B, функция равна единице на тех и только тех наборах,
которые представляют числа большие или равные 7;
22
f3 : B3 ! B, функция равна нулю на всех наборах с нечетным весом, и только на них.
Упр.2. Определить ядерные точки и интервалы булевых функций.
|
|
|
|
|
3 2 |
|
|
|
|
|
|
2 |
|
|
|
|
|
3 2 |
|
|
|
|
|
|
|
3 2 |
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
1 |
|
|
|
|
|
|
|
Упр.3. Привести примеры таблиц истинности булевых функций:
f1 : B3 ! B, функция принимает различные значения на противоположных наборах;
f2 : B3 ! B : f( ) f( ) åñëè .
Упр.4. Соревнования обслуживают три судьи, один из них главный. Вес считается поднятым, если за проголосовало большинство судей, в том числе и главный. Построить таблицу истинности булевой функции, описывающей такое голосование.
Упр.5. Вдоль длинного коридора размещены лампы. Включение и выключение света управляется тремя выключателями, два из которых расположены в концах коридора, а третий посередине. При нажатии любого выключателя все лампы включаются, если были выключены, и выключа- ются, если были включены. Построить таблицу истинности булевой функции, описывающей управление освещением коридора.
Упр.6. Найти и удалить фиктивные переменные булевых функций.
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 |
|
|
|
|
|
|
|
|
|
|
|
Упр.7. Найти и удалить фиктивные переменные булевых функций.
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 2 |
|
|
|
|
|
|
|
|
1 2 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
4 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23
|
|
|
|
|
|
|
4 3 |
|
|
|
|
|
|
4 3 |
|
|
|
|
|
|
|
|
|
|
|
4 3 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
||
1 2 |
|
|
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
Упр.8. Представить все элементарные булевы функции матрицами Грея и разбить их на пары инверсных функций.
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 это символ тождественной функции).
Примеры. |
(c; a), |
# |
(b; c), (x), |
( |
(x; y); (z)). |
|
^ |
|
|
_ |
|
Эти формулы написаны по всем правилам, оговоренным в определении, но мы будем использовать более привычный и уже введенный нами способ записи формул для элементарных булевых функций: c ^ a; b # c; x è ò.ä.
Чтобы указать порядок подстановки подформул A1; A2; : : : ; Am â ôîð-
мулу, то есть порядок вычисления значения формулы, будем брать все подформулы, кроме инверсии, в скобки. Договоримся обозначать формулы большими латинскими буквами.
Пример. Последняя формула предыдущего примера примет вид
F = (x y) _ z.
24
Разрешим опускать скобки вокруг конъюнкции и те скобки, которые бы указывали, что функции вычисляются в порядке их следования слева направо. Кроме того, разрешим опускать знак конъюнкции. Все это означает, что при вычислении по формуле конъюнкция имеет приоритет, а остальные функции вычисляются слева направо, но с учетом скобок.
Пример. Формула F = (x (y ^ z)) _ (x ! z) примет вид
F = x yz _ (x ! z).
Определение. Будем говорить, что формула 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 _ xy _ y, построив по ней таблицу
истинности (здесь мы демонстрируем другой способ построения таблицы истинности построчный).
x y |
x _ |
|
|
|
xy _ y |
00 0 _ 00 _ 0 = 0 _ 0 _ 1 = 1
01 0 _ 01 _ 1 = 0 _ 1 _ 0 = 1
10 1 _ 10 _ 0 = 1 _ 0 _ 1 = 1
11 1 _ 11 _ 1 = 1 _ 0 _ 0 = 1
Формула является тождественно истинной.
25
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.
Законы коммутативности : x _ y = y _ x, x y = y x, xy = yx.
26
Законы ассоциативности : 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).
Упр.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),
27
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), необходимо, согласно определению, проинвертировать все пе-
ременные, пользуясь при этом законом двойного отрицания, и саму функцию. При этом формулу Ff0 можно упростить (убрать длинную инверсию
над формулой), заменив символ функции, которая вычисляется последней, на символ инверсной ей функции.
Пример. Пусть Ff = x # (y (x _ yz)) ! (y x). Последней должна
вычислятьси импликация, инверсная ей функция это обратная импликация, поэтому формула для двойственной функции примет вид:
Ff0 = x # (y (x _ y z)) ! (y x) = x # (y (x _ y z)) ,! (y x):
28
Алгоритм построения таблицы истинности двойственной функции (основан на определении двойственной функции).
Инверсия всех переменных превращает наборы в их антиподы. Поскольку в таблице истинности антипод первого набора расположен последним, антипод второго набора предпоследним и так далее, то для построения функции 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:
5.2. Двойственная формула
Определение. Формула F называется двойственной формуле F, если
она получена из F заменой символов функций на символы двойственных
им функций.
Пример. F = x # (y (x _ yz)) ! (y x),
F = x=(y |
|
x(y |
_ |
z)) - (y |
|
x). |
|
||
|
|
|
|
|
|
Теорема (принцип двойственности ). Если формула F задает булеву
функцию f(x1; : : : ; xn), то двойственная ей формула F задает двойствен- ную функцию f (x1; : : : ; xn):
29
Доказательство. По условию теоремы формула F задает булеву функцию f(x1; : : : ; xn). По определению формулы F имеем:
F = f(x1; : : : ; xn) = f0(f1(x1; : : : ; xn); : : : ; fm(x1; : : : ; xn)):
Рассмотрим двойственную ей формулу:
F = f0 (f1 (x1; : : : ; xn); : : : ; fm(x1; : : : ; xn)) =
[по определению двойственной функции для fi (x1; : : : ; xn), i = 1; : : : ; m ]
=f0 (f1(x1; : : : ; xn); : : : ; fm(x1; : : : ; xn)) =
[по определению двойственной функции для f0 (y1; : : : ; ym) ]
=f0(f1(x1; : : : ; xn); : : : ; fm(x1; : : : ; xn)) =
[ по закону двойного отрицания ]
= f0(f1(x1; : : : ; xn); : : : ; fm(x1; : : : ; xn)) = f(x1; : : : ; xn) =
[ по определению двойственной функции для f(x1; : : : ; xn) ]
= f (x1; : : : ; xn):
Пример. Рассмотрим формулу F = x _ y, задающую булеву функцию НЕ-ИЛИ, то есть стрелку Пирса. Двойственная ей формула F = xy äîëæ-
на задавать функцию, двойственную стрелке Пирса это штрих Шеффера: в самом деле F = xy это функция НЕ-И, то есть штрих Шеффера.
Следствие из принципа двойственности. Если формулы F1 è F2
равносильны, то двойственные им формулы F1 è F2 также равносильны.
Доказательство. Равносильные формулы F1 è F2 задают одну и ту же
булеву функцию f(x1; : : : ; xn), следовательно, по принципу двойственно-
сти, двойственные им формулы F1 è F2 задают двойственную f(x1; : : : ; xn) функцию f (x1; : : : ; xn).
Таким образом, можно не доказывать некоторые равносильности (в том числе и основные), а выводить их, пользуясь следствием из принципа двойственности.
Примеры. Исходя из закона склеивания конъюнкций x y _ x y = y и используя следствие, получим (x _ y)(x _ y) = y закон склеивания дизъюнкций. Исходя из одного закона де Моргана x _ y = x y и используя следствие, получим другой закон де Моргана x y = x _ y.
30
5.3. Способы получения двойственной функции
Из материала, изложенного в предыдущих двух подразделах, следует, что если булева функция f(x1; : : : ; xn) задана формулой Ff , то двойствен- ная ей функция f (x1; : : : ; xn) может быть получена из Ff следующими тремя способами:
по определению двойственной функции инверсией в формуле Ff âñåõ аргументов и самой функции;
по определению двойственной формулы и принципу двойственности
заменой в формуле Ff символов функций на символы двойственных им
функций;построением таблицы истинности исходной функции по заданной фор-
ìóëå Ff , а затем переходом к таблице истинности двойственной функции (переворотом и инверсией столбца значений исходной функции).
5.4. Упражнения
Упр.1. Построить формулы для функций, двойственных данным, пользуясь двумя разными способами: определением двойственной функции и принципом двойственности. Сравнить таблицы истинности, построенные по полученным формулам.
F1 = x y _ y z _ x t _ z t,
F2 = x 1 _ y(z t _ 0) _ x y z,
F3 = (x ! y) ((x # y)=(x y z)),
F4 = (x _ y _ (yz 1)) ! 1.
Упр.2. Построить таблицы истинности по формулам из упр. 1, получить таблицы истинности двойственных функций и сравнить их с результатами предыдущего упражнения.
Упр.3. По таблицам истинности функций f1 f8 построить двойствен- ные им функции.
x y z |
f1 |
f2 |
f3 |
f4 |
f5 |
f6 |
f7 |
f8 |
||
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|