Тема 3. Булевы функции и способы их задания.
Булев вектор.
Булевым вектором называется упорядоченный набор (𝛼1, 𝛼2,..., 𝛼n), где 𝛼i принимают значения 0 или 1.
Числа 𝛼i называют координатами вектора, число 𝑛 - его длиной.
Для
краткого обозначения вектора (𝛼1,
𝛼2,...,
𝛼n)
используют символ
.
Например, (0,0), (0,1), (1,0), (1,1) - булевы векторы длины 2; (0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0), (1,1,1) - булевы векторы длины 3.
Число булевых векторов длины n равно 2n. Действительно, с точки зрения комбинаторики булев вектор длины n - упорядоченная выборка элементов множества {0,1}, которую можно построить за n шагов (на первом шаге выбрать первую координату, на втором - вторую и т.д.). Для выбора каждой координаты есть два варианта (0 или 1). Следовательно, согласно правилу произведения (см. § 1.2), последовательный выбор n координат можно сделать 2 ⋅ 2 ⋅...⋅ 2 = 2n способами.
Множество булевых векторов длины 𝑛 обозначают 𝐵n и называют единичным 𝑛 -мерным кубом.
Число 𝑣( ) = 𝛼1 ⋅ 2n-1 + 𝛼2 ⋅ 2n-2+... +𝛼k ⋅ 2n-k+… +𝛼n ⋅ 20 называют номером булева вектора = (𝛼1, 𝛼2,..., 𝛼n).
Функции алгебры логики (булевы функции).
Опр. Функция, определенная на 𝐵n и принимающая значение 0 или 1, называется булевой функцией от 𝑛 переменных.
Для обозначения булевых функций используют символы 𝑓, 𝑔, ℎ, а для обозначения аргументов - символы 𝑥, 𝑦, 𝑧,𝑡 (часто с индексами). Таким образом, запись 𝑓(𝑥1, 𝑥2,..., 𝑥n) воспринимается как обозначение функции от 𝑛 переменных (аргументов).
Задание булевых функций таблицей истинности и вектором значений.
Чтобы задать булеву функцию 𝑓 от 𝑛 переменных, достаточно указать ее значение (0 или 1) на каждом наборе (𝛼1, 𝛼2,..., 𝛼n) значений аргументов 𝑥1, 𝑥2,..., 𝑥n. Для задания булевой функции удобно использовать таблицу истинности (табл. 2.1). В каждой строке такой таблицы вначале идет набор (𝛼1, 𝛼2,..., 𝛼n) значений переменных 𝑥1, 𝑥2,..., 𝑥n, а затем значение функции на этом наборе. Булевы векторы перечисляются сверху вниз в порядке возрастания номеров.
Таблицы истинности булевых функций от одного числа аргументов отличаются лишь последним столбцом. Поэтому булеву функцию можно также задать вектором значений, выписав его по правому столбцу таблицы истинности. Поскольку помимо строки заголовков таблица содержит 2n строк (столько, сколько имеется булевых векторов длины 𝑛), то вектор значений булевой функции от 𝑛 переменных имеет длину 2n.
Элементарные булевы функции одной и двух переменных.
Ниже перечислены булевы функции, которые наиболее часто употребляются и потому считаются «элементарными». Эти функции имеют собственные обозначения и названия:
1) 𝑔0 называется тождественным нулем и обозначается 0;
2) 𝑔1 называется тождественной функцией и обозначается по имени переменной (в нашем случае 𝑥);
3) 𝑔2 называется отрицанием 𝑥, обозначается 𝑥̄ или ¬𝑥 и читается «не 𝑥»;
4) 𝑔3 называется тождественной единицей и обозначается 1;
5) 𝑓1 называется конъюнкцией, обозначается 𝑥 ∧ 𝑦 или 𝑥&𝑦, или 𝑥 ⋅ 𝑦 и читается «𝑥 и 𝑦»;
6) 𝑓6 называется сложением по модулю 2, обозначается 𝑥 ⊕ 𝑦 и читается «𝑥 плюс 𝑦»;
7) 𝑓7 называется дизъюнкцией, обозначается 𝑥 ∨ 𝑦 и читается «𝑥 или 𝑦»;
8) 𝑓8 называется стрелкой Пирса, обозначается 𝑥 ↓ 𝑦;
9) 𝑓9 называется эквивалентностью, обозначается 𝑥 ↔ 𝑦 и читается «𝑥 эквивалентно (равносильно) 𝑦»;
10) 𝑓13 называется импликацией, обозначается 𝑥 → 𝑦 и читается «𝑥 имплицирует (влечет) 𝑦».
11) 𝑓14 называется штрихом Шеффера и обозначается 𝑥|𝑦.
Символы ¬, ∧, ∨, ⊕, ↓, ↔, →, |, с помощью которых обозначают элементарные функции, называются логическими связками.
Формулы над множеством функций, задание функций формулами, равносильные формулы.
Для задания булевых функций, помимо таблиц, используют формулы, которые обычно строят по «принципу матрешек», вкладывая друг в друга символические обозначения функций. Говоря о формуле, часто указывают, с использованием каких функций она строилась. В некоторых случаях нужно указывать и то, какие использовались переменные.
Например, ((𝑥1 ∨ 𝑥2) → (𝑥2|𝑥3)) - формула над множеством функций, состоящим из дизъюнкции, импликации и штриха Шеффера с переменными из множества {𝑥1, 𝑥2, 𝑥3}, а ((𝑥2 ∧ (¬𝑥1)) ↔ 𝑥1)- формула над множеством функций, состоящим из конъюнкции, отрицания и эквивалентности, с переменными из множества {𝑥1, 𝑥2}.
При составлении формулы над множеством функций 𝔅 с переменными из множества 𝑋 можно в качестве аргументов функций из 𝔅 использовать любые переменные из 𝑋. Также на места аргументов функций из 𝔅 можно подставлять любые ранее составленные над 𝔅 формулы (их принято называть подформулами конечной формулы).
Например, ((𝑥1 ∧ 𝑥1) ↔ (𝑥2 ∨ (¬𝑥2))) - формула над множеством функций, состоящим из отрицания, конъюнкции, дизъюнкции и эквивалентности, с переменными из множества {𝑥1, 𝑥2}, а (𝑥1 ∧ 𝑥1), (¬𝑥2), (𝑥2 ∨ (¬𝑥2)) - подформулы этой формулы.
Формула каждому набору значений аргументов ставит в соответствие значение некоторой функции и может служить, наряду с таблицей, способом задания этой функции. При этом говорят, что формула задает (представляет, реализует) функцию.
Доказательство равносильности формул с использованием таблиц истинности.
Пошагово строим для каждой функции таблицу истинности.
Основные равносильности над множеством {∨,∧, ¬,0,1}.
Для формул над множеством {0,1,∧,∨, ¬} имеют место следующие равносильности:
1. 𝒙 ∨ 𝒚 = 𝒚 ∨ 𝒙; 2. 𝑥 ∧ 𝑦 = 𝑦 ∧ 𝑥;
3. 𝑥 ∨ (𝑦 ∨ 𝑧) = (𝑥 ∨ 𝑦) ∨ 𝑧; 4. 𝑥 ∧ (𝑦 ∧ 𝑧) = (𝑥 ∧ 𝑦) ∧ 𝑧;
5. 𝑥 ∨ (𝑦 ∧ 𝑧) = (𝑥 ∨ 𝑦) ∧ (𝑥 ∨ 𝑧); 6. 𝑥 ∧ (𝑦 ∨ 𝑧) = (𝑥 ∧ 𝑦) ∨ (𝑥 ∧ 𝑧);
7. 𝑥 ∨ 𝑥 = 𝑥; 8. 𝑥 ∧ 𝑥 = 𝑥;
9. 𝑥 ∨ 𝑦 = 𝑥 ∧ 𝑦; 10. 𝑥 ∧ 𝑦 = 𝑥 ∨ 𝑦;
11. 𝑥 ∨ 0 = 𝑥; 12. 𝑥 ∧ 0 = 0;
13. 𝑥 ∧ 1 = 𝑥 14. 𝑥 ∨ 1 = 1;
15. 𝑥 ∨ (𝑥 ∧ 𝑦) = 𝑥; 16. 𝑥 ∧ (𝑥 ∨ 𝑦) = 𝑥;
17.𝑥 ∧ 𝑥̄= 0; 18. 𝑥 ∨ 𝑥̄= 1;
19. 𝑥̄= 𝑥.
Чтобы доказать любую из равносильности 1 - 19, достаточно построить таблицы истинности этих функций.
Упрощение формул методом равносильных преобразований.
Он основан на том, что результат вычисления значения функции по формуле не зависит от того, как получены значения переменных, входящих в формулу (брались они произвольно, как значения независимых переменных, или были получены в результате каких-то вычислений). В частности, равносильности 1 - 19 (см. теорему 2.1) остаются справедливыми при подстановке вместо переменных любых формул. Важно лишь соблюдать следующее правило: при подстановке в равносильность вместо некоторой переменной формулы 𝛷 все вхождения этой переменной в исходное равенство должны быть одновременно заменены формулой 𝛷.
Таким образом, действует принцип: если 𝐴 - подформула формулы 𝛷, то при замене в формуле 𝛷 любого вхождения 𝐴 на равносильную ей формулу 𝐴1 формула 𝛷 переходит в равносильную ей формулу 𝛷1.
Фиктивные и существенные переменные, равные функции, алгоритм удаления и введения фиктивных переменных.
Опр. Переменная 𝑥i называется фиктивной переменной функции 𝑓(𝑥1,..., 𝑥n), если на всех наборах 𝛼1,..., 𝛼i-1, 𝛼i+1,..., 𝛼n значений переменных 𝑥1,..., 𝑥i-1, 𝑥i+1,..., 𝑥n выполняются равенства
𝑓(𝛼1,..., 𝛼i-1, 0, 𝛼i+1,..., 𝛼n) = 𝑓(𝛼1,..., 𝛼i-1, 1, 𝛼i+1,..., 𝛼n).
В противном случае переменная 𝑥i называется существенной, т.е. переменная 𝑥i называется существенной переменной функции 𝑓(𝑥1,..., 𝑥n), если найдется такой набор 𝛼1,..., 𝛼i-1, 𝛼i+1,..., 𝛼n значений переменных 𝑥1,..., 𝑥i-1, 𝑥i+1,..., 𝑥n, что
𝑓(𝛼1,..., 𝛼i-1, 0, 𝛼i+1,..., 𝛼n) ≠ 𝑓(𝛼1,..., 𝛼i-1, 1, 𝛼i+1,..., 𝛼n).
Чтобы определения фиктивной и существенной переменных легче было усвоить, адаптируем их к каким-нибудь частным случаям. Например, определим 𝑦 как фиктивную переменную функции 𝑓(𝑥, 𝑦, 𝑧): переменная 𝑦 называется фиктивной переменной функции 𝑓(𝑥, 𝑦, 𝑧), если выполняются четыре равенства: 𝑓(0,0,0) = 𝑓(0,1,0), 𝑓(0,0,1) = 𝑓(0,1,1), 𝑓(1,0,0) = 𝑓(1,1,0), 𝑓(1,0,1) = 𝑓(1,1,1).
Теперь определим 𝑦 как существенную переменную функции 𝑓(𝑥, 𝑦, 𝑧): переменная 𝑦 называется существенной переменной функции 𝑓(𝑥, 𝑦, 𝑧), если хотя бы одно из равенств 𝑓(0,0,0) = 𝑓(0,1,0), 𝑓(0,0,1) = 𝑓(0,1,1), 𝑓(1,0,0) = 𝑓(1,1,0), 𝑓(1,0,1) = 𝑓(1,1,1) не выполняется.
Фиктивные переменные не влияют на значения функции и с этой точки зрения являются «лишними», поэтому естественно поставить вопрос об их удалении.
Опр. Пусть для функции 𝑓(𝑥1, 𝑥2,..., 𝑥n) переменная 𝑥i является фиктивной. Возьмем таблицу истинности функции 𝑓. Вычеркнем из нее все строки, в которых 𝑥i = 1, а также вычеркнем столбец переменной 𝑥i. Полученная таким образом таблица будет задавать некоторую функцию 𝑔(𝑥1,..., 𝑥i-1, 𝑥i+1,..., 𝑥n), причем на любом наборе 𝛼1,...,𝛼i-1,𝛼i,𝛼i+1,...,𝛼n значений переменных 𝑥1,..., 𝑥i-1, 𝑥i, 𝑥i+1,..., 𝑥n для функций 𝑓 и 𝑔 выполнено равенство 𝑓(𝛼1,..., 𝛼i-1, 𝛼i, 𝛼i+1,..., 𝛼n) = 𝑔(𝛼1,..., 𝛼i-1, 𝛼i+1,..., 𝛼n). О функции 𝑔 говорят, что она получена из функции 𝑓 путем удаления фиктивной переменной, а о функции 𝑓 говорят, что она получена из функции 𝑔 путем введения фиктивной переменной.
Если одну функцию можно получить из другой путем введения или удаления фиктивных аргументов, то они считаются равными.
