1. Логические функции
1. Логические функции как отображения. Отличительная особенность логических функций состоит в том, что они принимают значения в конечных множествах. Иначе говоря, область значений логической функции всегда представляет собой конечную совокупность чисел, символов, понятий, свойств и, вообще, любых объектов. Если область значений функции содержит k различных элементов, то она называется k-значной функцией.
Чтобы различать элементы области значений функции, их необходимо как-то отметить. Удобнее всего элементы перенумеровать числами от 1 до k или обозначить какими-нибудь символами (например, буквами). Перечень всех символов, соответствующих области значений, называют алфавитом, а сами символы — буквами этого алфавита (буквами могут служить как собственно буквы латинского, русского или другого алфавита, так и порядковые числа или любые другие символы).
- 504 -
Логические функции могут зависеть от одной, двух и, вообще, любого числа переменных (аргументов) x1, x2, ..., xn. В отличие от самой функции, аргументы могут принимать значения из элементов как конечных, так и бесконечных множеств.
В теоретико-множественном смысле логическая функция n переменных y = f(x1, x2, ..., xn) представляет собой отображение множества наборов (n-мерных векторов, кортежей, последовательностей) вида (x1, x2, ..., xn), являющегося областью ее определения, на множестве ее значений N = {α1, α2, ..., αn}. Логическую функцию можно также рассматривать как операцию, заданную законом композиции X1, X2, ..., Xn где - множества, на которых определены аргументы x1 ∈ X1, x2 ∈ X2, ..., xn ∈ Xn.
2. Однородные функции. Если аргументы принимают значения из того же множества, что и сама функция, то ее называют однородной функцией. В этом случае X1 = Х2 = ... = Хn = N и однородная функция, рассматриваемая как закон композиции Nn → N определяет некоторую п-местную операцию на конечном множестве N.
Областью определения однородной функции у = f(х1, х2, ..., xn) служит множество наборов (х1, х2, ..., xn), называемых словами, где каждый из аргументов х1, х2, ..., xn замещается буквами k-ичного алфавита {0, 1, ..., k -1}. Количество n букв в данном слове определяет его длину.
Очевидно, число всевозможных слов длины n в k-ичном алфавите равно kn. Так как каждому такому слову имеется возможность предписать одно из k значений множества N, то общее количество однородных функций от n переменных выражается числом k(kn).
Если буквами алфавита служат числа от 0 до k - 1, то каждое слово (х1, х2, ..., xn) символически представляется упорядоченной последовательностью n таких чисел и рассматривается как запись n-разрядного числа в позиционной системе счисления с основанием k, т. е. x1kn -1 + x2kn –2 + … + xn -1k1 + xnk0 = q. Числа q = 0, 1, ..., kn - 1 служат номерами слов и тем самым на множестве всех слов вводится естественная упорядоченность (отношение строгого порядка). Аналогично номерами функций можно считать kn -разрядные числа в той же системе счисления.
Различные слова длины n в данном алфавите образуются как n-перестановки с повторениями (2. 10. 1). Так, в трехзначном алфавите {0, 1, 2} словами длины 4 будут все четырехразрядные числа с основанием k = 3, т. е. 0000, 0001, 0002, 0010, 0011, ..., 2221, 2222, которые соответствуют десятичным числам от 0 до 80 = 2 · З3+ 2 · З2+ 2 · З1 + 2 · 30. Поставив каждому такому четырехразрядному числу в соответствие одну из букв алфавита {0, 1, 2}, получим некоторую функцию четырех переменных
- 505 -
fi(х1, х2, x3, x4), причем количество таких функций выражается огромным числом 381.
Пусть алфавит состоит из трех букв русского алфавита {о, п, т}. Множество пятибуквенных слов в этом алфавите состоит из 35 = 243 элементов. Наряду с такими имеющими прямой смысл словами, как «топот» и «потоп», оно также включает все другие 5-перестановки, например: «ооппт», «поппп», «тттоп» и др.
Примерами однородных логических функций двух переменных могут служить операции сложения и умножения одноразрядных m-значных чисел по модулю т (2. 8. 7), внутренние операции поля Галуа (2. 8. 9) с четырехзначным алфавитом {0, 1, А, В} и т. п.
3. Табличное задание функций. Как и бинарный закон композиции (2. 7. 2), однородная функция двух переменных может быть задана таблицей соответствия (матрицей), строки и столбцы которой соответствуют буквам алфавита. Таким способом представлялись функции одной и двух переменных в (1. 5. 2),(1. 5. 8) и (1. 5. 10). Для представления функций трех и большего числа переменных потребовались бы трехмерные и, вообще, n-мерные таблицы. Этого можно избежать, если столбцы матрицы поставить в соответствие не буквам алфавита, а словам, т. е. образовать kn столбцов. Для каждой функции отводится строка, клетки которой заполняются буквами из данного алфавита. Матрица всех функций n переменных в k-значном алфавите содержит kkn строк и называется общей таблицей соответствия. Например, для k = 3 и n = 2 такая матрица имеет вид:

Номера столбцов определяются расположенными над ними n-разрядными числами с основанием k, каждое из которых читается сверху вниз. Номера функций отождествляются с kn-разрядными числами, которые соответствуют строкам матрицы в той же системе счисления.
4. Двузначные однородные функции. Наиболее простым и в то же время важнейшим классом однородных функций являются двузначные (булевы) функции, частично рассмотренные в (1.5. 2) и последующих пунктах.
- 506 -
Областью определения булевых функций от n переменных служит множество слов длины n. Они представляют собой всевозможные наборы из n двоичных цифр и их общее количество равно 2n.
Число всевозможных булевых функций n переменных v = 2n быстро возрастает с увеличением n (при n = 3 оно равно 256, а при n = 5 превышает 4 миллиарда). Но функции одной и двух переменных еще можно перечислить и подробно исследовать, так как их количество сравнительно невелико (v = 4 при п = 1 и v = 16 при n = 2).
5. Булевы функции одной переменной. Общая таблица соответствия для булевых функций одной переменной имеет вид (справа указаны обозначения функций):
x
0
1
y0 = 0
0
0
y1 = x
0
1
y2 = x̅
1
0
y3 = 1
1
1
Две функции у0 = 0 и у3 = 1 представляют собой функции-константы (тождественный нуль и тождественная единица), таккакони не изменяют своих значений при изменении аргумента. Функция y1 = х повторяет значения переменной х и потому просто совпадает с ней.
Единственной нетривиальной функцией является у2 = x̅ , называемая отрицанием или инверсией ( x̅ читается «не х»). Она равна 1, когда аргумент принимает значение 0, и равна 0 при аргументе 1.
6. Булевы функции двух переменных. Все 16 функций двух переменных приведены в табл. 6, где указаны условные обозначения, названия и чтения функций (в скобках даны встречающиеся в литературе варианты).
Шесть из приведенных функций не зависят от x1 или x2 (или от обоих вместе). Это две константы (y0 = 0 и y15 = 1), повторения (y3 = х1 и y5 = х2) и отрицания (y10 = x̅2, и y12 = x̅1), являющиеся функциями одной переменной (х1 или x2). Из остальных десяти функций две (y4 и y11) отличаются от соответствующих им (y2 и y13) лишь порядком расположения аргументов и поэтому не являются самостоятельными. Поэтому из 16 булевых функций двух переменных только восемь являются оригинальными (y1, y2, y6, y7, y8, y9, y13, y14).
Рассмотрение булевых функций одной, двух и большего числа переменных показывает, что всякая функция от меньшего числа переменных содержится среди функций большего числа переменных. Функции, которые сводятся к зависимости от меньшего числа переменных, называют вырожденными, а функции, существенно
- 507 -
Таблица 6
Булевые функции двух переменных
x1 x2
0011
0101
Обозначения
Названия
Чтение
y0
0000
Константа 0 (тождественный нуль, всегда ложно)
Любое 0
y1
0001
x1x2; x1 ∧ x2 ( x1 & x2 ; x1 ∩ x2 )
Конъюнкция (совпадение, произведение, пересечение, логическое «и»)
x1 и x2 (и x1 и x2)
y2
0010
x1←x2
( x1⊃x2 ; x1x2 )
Отрицание импликации (совпадение с запретом, антисовпадение, запрет)
x1, но не x2
y3
0011
x1
Повторение (утверждение, доминация) первого аргумента
Как x1
y4
0100
x2⊃x1 ( x2 ⊄ x1 ; x2 x1 )
Отрицание обратной импликации (обратное антисовпадение)
Не x1, но x2
y5
0101
x2
Повторение (утверждение, доминация) второго аргумента
Как x2
y6
0110
x1 + x2 ( x2 ⊕ x1 )
Сумма по модулю 2 (неравнозначность, антиэквивалентность)
x1 не как x2 (или x2 или x1)
y7
0111
x1 ∨ x2 (x1 + x2; x1 ∪ x2 )
Дизъюнкция (разделение, логическая сумма, сборка, логическое «или»)
x1 или x2 (x1 или хотя бы x2)
y8
1000
x1 ↓ x2 ( x1 ∨̅ x2 ; x1 ○ x2 )
Стрелка Пирса (функция Вебба, отрицание дизъюнкции, логическое «не – или»)
Ни x1,ни x2
- 508 -
Продолжение табл. 6
x1 x2
0011
0101
Обозначения
Названия
Чтение
y9
1001
x1 ~ x2 ( x1 ≡ x2 ; x1 ↔ x2)
Эквиваленция (равнозначность, эквивалентность, взаимозависимость)
x1 как x2 (x1, если и только если x2)
y10
1010
x̅2 (x'2; ~x2; ¬ x2)
Отрицание (инверсия) второго аргумента (дополнение к первой переменной)
Не x2
y11
1011
x2 → x1 ( x1 ⊂ x2 ; x1 < x2 )
Обратная импликация (обратное разделение с запретом, обратная селекция)
Если x2, то x1 (x1 или не x2)
y12
1100
x̅1 (x1; ~x1; ¬ x1)
Отрицание (инверсия) первого аргумента (дополнение к первой переменной)
Не x1
y13
1101
x1→x2 ( x1⊃x2 ; x1 > x2 )
Импликация (разделение с запретом, следование, селекция)
Если x1, то x1 (не x1 или x2)
y14
1110
x1 / x2 ( x1 ∧̅ x2 ; x1 &̅ x2 )
Штрих Шеффера (отрицание конъюнкции, несовместность, логическое «не – и»)
Не x1 или не x2
y15
1111
1
Константа 1 (тождественная единица, всегда истино)
Любое 1
зависящиеот всех переменных, являются невырожденными. Так, среди функций одной переменной имеются две вырожденные (константы 0 и 1, которые можно рассматривать как функции от нуля переменных), функции двух переменных содержат те же константы и четыре функции одной переменной и т. д.
7. Зависимость между булевыми функциями.Из табл. 6 видно, что между функциями имеются зависимости yi = y̅15-i (i = 0, 1, ... ..., 15), на основании которых можно записать соотношения для констант 0=1̅ и 1=0̅, для функции одной переменной х = x̿ и для функций двух переменных:
x1x2 = ¬(x1 / x2) ; x1←x2 = ¬(x1 → x2) ; x1 + x2 = ¬(x1 ~ x2) ; x1 ∨ x2 = ¬(x1 ↓ x2) ,
или
x1/x2 = ¬(x1x2) ; x1→x2 = ¬(x1←x2) ; x1 ~ x2 = ¬(x1 + x2) ; x1 ↓ x2 = ¬(x1 ∨ x2) .
- 509 -
Из этих зависимостей следует, что любая функция двух переменных (включая константы) выражается в аналитической форме через совокупность шести функций, содержащей отрицание x̅ и любую из каждой пары функций {y0, y15},{y1, y14},{y2, y13}, {y6, y9}, {y7, y8}. Например, такой совокупностью могут служить функции: константа 0, отрицание`х, конъюнкция х1x2, дизъюнкция x1 ∨ x2 ,эквиваленция х1 ~ x2 и импликация x1→x2 . Как уже упоминалось в (1. 5. 8), они используются в исчислении высказываний.
Выбранная таким способом совокупность шести функций является избыточной. Можно показать, что импликация и эквиваленция выражаются через остальные функции этой совокупности:
x1 → x2 = x̅1 ∨ x2
x1 ~ x2 = (x1 ∨ x̅2)(x̅1 ∨ x2).
Для этого достаточно построить таблицу соответствия и сравнить ее с табл. 6:
x1
0
0
1
1
x2
0
1
0
1
x̅1
1
1
0
0
x̅2
1
0
1
0
(x̅1 ∨ x2)
1
1
0
1
x1→x2
(x1 ∨ x̅2)
1
0
1
1
(x1 ∨ x̅2)(x̅1 ∨ x2)
1
0
0
1
x1 ~ x2
Таким образом, комплект элементарных функций сокращается до четырех: константа 0, отрицание x̅ , конъюнкция x1x2 и дизъюнкция x1 ∨ x2 . Этот комплект обладает существенными удобствами и часто применяется на практике, но и он может быть сокращен. Так, из законов де Моргана и свойства двойного отрицания вытекают тождества:
x1 ∨ x2 = ¬(x̅1x̅2); x1x2 = ¬(x̅1 ∨ x̅2).
Отсюда следует, что булевы функции выражаются через отрицание и конъюнкцию или через отрицание и дизъюнкцию.
Более того, для записи любой булевой функции достаточно только одной из двух элементарных функций — стрелки Пирса или штриха Шеффера. Это вытекает из соотношений (их доказательство приводится аналогично с помощью таблиц соответствия):
x̅ = x ↓ x = x/x;
x1x2 = (x1/x2)/(x1/x2); (x1 ↓ x2).
8. Булевы функции многих переменных. С помощью суперпозиции функций, т. е. подстановки в логические формулы вместо переменных некоторых булевых функций, можно получить более сложные
- 510 -
функции от любого числа переменных. Например, подставляя в выражение аb формулы a = x1 ∨ x2 и b = x2 → c, а также c=x̅3, получаем (x1 ∨ x2)(x2 → x̅3) . Таблица соответствия для сложных формул записывается на основании общей таблицы для элементарных функций. Для данного примера она имеет вид:
x1
0 0 0 0 1 1 1 1
x2
0 0 1 1 0 0 1 1
x3
0 1 0 1 0 1 0 1
x1 ∨ x2
0 0 1 1 1 1 1 1
x̅3
1 0 1 0 1 0 1 0
x2 → x̅3
1 1 1 0 1 1 1 0
(x1 ∨ x2)(x2 → x̅3)
0 0 1 0 1 1 1 0
Если на всех наборах значений переменных функция принимает значение 0 или 1, то она вырождается в соответствующую константу и называется тождественным нулем или тождественной единицей.
Например, x ∨ x̅ = 1; xx̅ = 0; xx̅ ∨ xx̅y =0; ((xy ∨y̅z → z̅) ∨ (x∨y̅)z = 1; x(x → y) → y = 1 и т. п.
9. Геометрическое представление. Область определения булевых функций от п переменных y = f(х1, x2, ...,xn) можно рассматривать как совокупность n-мерных векторов (слов длины n), компонентами которых являются буквы 0 и 1 двоичного алфавита. При п = 3 каждый вектор представляется вершиной единичного куба в трехмерном пространстве (рис. 188).
В общем случае совокупность векторов (х1, x2, ...,xn) отображается на множество вершин n-мерного куба.Всетакие вершины образуют логическое пространство.
Рис. 188. Отображение булевой функции y = (х1 ∨ х2) × (х2 → х̅3) на трехмерном кубе.
Булева функция отображается на n-мерном кубе путем выделения вершин, соответствующих векторам (х1, x2, ...,xn) на которых булева функция y = f(х1, x2, ...,xn) принимает значения 1. Обычно такие вершины отмечают жирными точками. Так, на рис. 188 отображена функция (х1 ∨ х2)(х2 → х̅3) в соответствии с таблицей из (8).
10. Неоднородные функции. Аргументы неоднородных функций в отличие от однородных, могут принимать значения из любых конечных или бесконечных множеств, но область определения значений самих функций ограничена конечными множествами.
- 511 -
Важным примером неоднородных функций являются двузначные n-местные предикаты (1.5.9). Предикат Р (x1, x2, ..., xn) принимает одно из двух значений - «истинно» (1) или «ложно» (0) в зависимости от конкретных значений, приписываемых переменным x1, x2, ..., xn. Если значения переменных выбираются из некоторого множества М (универсума), то n-местный предикат можно рассматривать как n-местное отношение, определенное на этом множестве.
Одноместный предикат P(x) задает некоторое свойство элементов множества М и вполне определяется подмножеством P ⊂ M тех объектов x ∈ M, на которых он принимает значение «истинно».
Рис. 189. Характеристические подмножества, соответствующие операциям над предикатами (область истинных значений заштрихована).
Множество объектов, на которых предикат P(x) принимает значение «ложно», соответствует дополнению множества P, т.е. P̅. Очевидно, если P(x) истинно, то P̅(x) — ложно и наоборот. Например, если на множестве натуральных чисел определен предикат P(x) = «x — четное число», то P̅(x) - «x — нечетное число». Таким образом, одноместный предикат, определенный на множестве М разбивает это множество на два подмножества P и P̅. Подмножество P ⊂ M, на котором предикат P(x) принимает значение «истинно», называется характеристическим подмножеством.
Пусть на М определены два предиката P(x) и Q(x), характеристическими подмножествами которых являются соответственно P и Q. Рассматривая предикаты как двузначные функции, можно с помощью операций алгебры логики строит новые одноместные предикаты на множестве М. Конъюнкция P(x) и Q(x) — это предикат R(x) = P(x) ∧ Q(x), который истинен для тех и только тех объектов из М, для которых оба предиката P(x) и Q(x) истинны.
- 512 -
Характеристическим множеством предиката R(x) является пересечение P ∩ Q. Подобным образом вводятся и операции дизъюнкции P(x) ∨ Q(x), импликации P(x) → Q(x), эквиваленции P(x) ~ Q(x) и др. На рис. 189 показаны соответствующие этим операциям характеристические подмножества (область истинных значений заштрихована). Их легко получить из таблиц соответствия для функций двух переменных. Имеют место также соответствия между различными операциями, вытекающие из зависимостей между булевыми функциями: P(x) → Q(x) соответствует P̅(x) ∨ Q(x), P̅(x) ~ Q(x) соответствует (P(x) ∨ Q̅(x)) (P̅(x) ∧ Q̅(x)) или P(x)Q(x) ∨ P̅(x)Q̅(x) и т.п.
Больше книг — больше знаний!
Заберите 20% скидку на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ