Добавил:
владимир Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
дискра / к_экзамену / 1_Temy_3-7.docx
Скачиваний:
0
Добавлен:
17.08.2025
Размер:
5.14 Mб
Скачать

Тема 4. Представление булевых функций формулами специального вида.

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

Функция, заданная формулой (𝑥̄1, 𝑥̄2,..., 𝑥̄n), называется двойственной к функции 𝑓(𝑥1, 𝑥2,..., 𝑥n).

Функцию, двойственную к 𝑓, обозначают 𝑓*, таким образом, 𝑓*(𝑥1,𝑥2,...,𝑥n) = (𝑥̄1,𝑥̄2,...,𝑥̄n).

Нетрудно заметить, что столбец значений функции 𝑓* можно получить из столбца значений функции 𝑓, действуя по следующему алгоритму:

1) столбец значений функции 𝑓 переписать в обратном порядке (т.е. число, стоящее в первой строке, записать в последнюю строку; число, стоящее во второй строке, - в предпоследнюю строку и т.д.);

2) в получившемся в результате выполнения п. 1 столбце значений каждое число заменить его отрицанием (0 заменить 1 и 1 заменить 0).

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

Если функция задана вектором значений, то роль столбца значений в алгоритме выполняет вектор значений.

Eсли функция 𝑔 = 𝑓*, то функция 𝑓 = 𝑔*. Это утверждение несложно обосновать теоретически.

Действительно, пусть 𝑔(𝑥1, 𝑥2,..., 𝑥n) = 𝑓*( 𝑥1, 𝑥2,..., 𝑥n). Тогда

g*(𝑥1, 𝑥2,..., 𝑥n) = (𝑓*( 𝑥1, 𝑥2,..., 𝑥n))*= ( (𝑥̄1,𝑥̄2,...,𝑥̄n))*=

= ( , ,…, )= 𝑓( 𝑥1, 𝑥2,..., 𝑥n).

Пусть функция 𝑓 задана формулой, и мы хотим построить формулу для двойственной к ней функции 𝑓*. Согласно определению, это можно сделать, заменив в формуле, которой задана 𝑓, каждую переменную ее отрицанием и взяв отрицание от самой формулы.

Принцип двойственности.

Если формула 𝛷[𝑓1, 𝑓2,..., 𝑓n] задает функцию 𝑔, то формула, полученная из нее заменой символов функций 𝑓1, 𝑓2,..., 𝑓n на символы двойственных к ним функций 𝑓1*, 𝑓2*,..., 𝑓n*, задает функцию 𝑔*, двойственную к функции 𝑔. Полученную таким образом формулу будем называть двойственной к 𝛷[𝑓1, 𝑓2,..., 𝑓n] и обозначать 𝛷*[𝑓1, 𝑓2,..., 𝑓n].

Если функция задана формулой над множеством 0,1, x, , xy, xy , то, используя пример 1, принципу двойственности можно придать более конкретный вид: если в формуле 𝛷, представляющей функцию 𝑓, все конъюнкции заменить на дизъюнкции, дизъюнкции - на конъюнкции, 1 на 0, 0 на 1, то получим формулу 𝛷*, представляющую функцию 𝑓*, двойственную к 𝑓.

Разложение булевой функции по переменным.

Каждую булеву функцию 𝑓(𝑥1, 𝑥2,..., 𝑥n) при любом 𝑚 (1 ≤ 𝑚 ≤ 𝑛) можно задать формулой

(здесь дизъюнкция берется по всевозможным наборам значений переменных 𝑥1,𝑥2,...,𝑥m).

Совершенная дизъюнктивная нормальная форма (СДНФ).

Совершенная конъюнктивная нормальная форма (СКНФ).

Представление булевой функции в виде СДНФ и СКНФ.

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

Рассмотрим формулы с двумя бинарными операциями - конъюнкцией (умножением) и сложением по модулю два.

1) 𝑥 ⊕ 𝑦 = 𝑦 ⊕ 𝑥;

2) (𝑥 ⊕ 𝑦) ⊕ 𝑧 = 𝑥 ⊕ (𝑦 ⊕ 𝑧);

3) (𝑥 ⊕ 𝑦)𝑧 = 𝑥𝑧 ⊕ 𝑦𝑧;

4) 𝑥 ⊕ 1 = 𝑥;

5) 𝑥 ⊕ 0 = 𝑥;

6) 𝑥 ⊕ 𝑥 = 0.

7) (𝑥 ⊕ 𝑦)(𝑧 ⊕ 𝑡) = 𝑥𝑧 ⊕ 𝑦𝑧 ⊕ 𝑥𝑡 ⊕ 𝑦𝑡.

8) 𝑥1 ∨ 𝑥2 = 𝑥1 ⋅ 𝑥2 ⊕ 𝑥1 ⊕ 𝑥2.

Пусть задан алфавит переменных 𝑋 = {𝑥1, 𝑥2,..., 𝑥n}.

О пр. Формулу вида где для любого 𝑖 𝜎i равно 0 или 1 и все переменные разные (𝑖v ≠ 𝑖µ, если 𝜈 ≠ 𝜇), называют элементарной конъюнкцией ранга r над множеством X.

Константу 1 считают элементарной конъюнкцией ранга 0.

Полиномом Жегалкина над множеством 𝑋 = {𝑥1, 𝑥2, ..., 𝑥n} называется всякая сумма (по модулю два) различных элементарных конъюнкций над 𝑋, не содержащих отрицаний переменных.

Заметим, что элементарные конъюнкции, не содержащие отрицаний переменных, называют монотонными.

Наибольший из рангов элементарных конъюнкций, входящих в полином, называют степенью полинома.

Согласно определению, произвольный полином Жегалкина имеет вид ∑ 𝑥i1, 𝑥i2 ... 𝑥ik или 1 ⊕ ∑ 𝑥i1, 𝑥i2 ... 𝑥ik (здесь суммирование ведется по некоторому множеству наборов (𝑖1,𝑖2,... 𝑖k ), в каждом из которых все 𝑖j различны). В число полиномов Жегалкина также входит константа 1 (напомним, что 1 считается элементарной конъюнкцией ранга нуль). Кроме того, в число полиномов включают константу 0.

Поскольку каждую булеву функцию, не равную тождественно нулю, можно представить в виде дизъюнктивной нормальной формы (например, СДНФ), то приведенные выше рассуждения доказывают, что любую булеву функцию можно задать полиномом Жегалкина.

Теорема 2.9. Для любой булевой функции существует задающий ее полином Жегалкина. Он единственен с точностью до перестановок слагаемых.

Всякий полином Жегалкина единственным образом можно записать в виде суммы: 𝑎0𝐾0 ⊕ 𝑎1𝐾1 ⊕.. .⊕ 𝑎2n-1𝐾2n-1, где каждый коэффициент 𝑎i равен 0 или 1. Суммы такого вида будем называть каноническими полиномами Жегалкина от 𝑛 переменных.

Чтобы задать функцию полиномом Жегалкина, применяют метод равносильных преобразований и метод неопределенных коэффициентов. С первым из них мы уже познакомились, доказывая возможность представления произвольной булевой функции полиномом Жегалкина. Рассмотрим метод неопределенных коэффициентов. Пусть функция 𝑓 зависит от 𝑛 переменных. Запишем в общем виде канонический полином Жегалкина 𝑃 от 𝑛 переменных и для каждого набора (𝛼1, 𝛼2,..., 𝛼n) значений переменных составим уравнение

𝑓(𝛼1, 𝛼2, ... , 𝛼n) = 𝑃(𝛼1, 𝛼2, ... , 𝛼n).

В результате получим систему из 2n уравнений, которая однозначно определяет коэффициенты полинома.

Пример.

Соседние файлы в папке к_экзамену