
- •Обобщённый алгоритм Евклида
- •Второй способ нахождения линейного представления наибольшего общего делителя
- •Линейные диофантовы уравнения с двумя неизвестными
- •Решение уравнений в кольце остатков по данному модулю
- •Китайская теорема об остатках (теория)
- •Непрерывные дроби и перевод рационального числа в конечную дробь
- •Наилучшие приближения
- •Разбор типовых примеров к первому индивидуальному домашнему заданию по теме «Делимость целых чисел и многочленов»
- •Правило сложения
- •Перестановки
- •Треугольник Паскаля
- •Серия задач по комбинаторике на различные методы решения
- •Определение
- •Упражнение 1. Приведите пример двудольного графа с 6 вершинами. Упражнение 2. Докажите признаки двудольных графов:
- •Булевы функции
- •Многочлен Жегалкина
- •Двойственная функция
- •Нахождение таблицы значений функции, двойственной к данной булевой функции
- •Исследование булевой функции на принадлежность к основным классам замкнутости
- •Применение теоремы Пóста
- •Представление конъюнкции и отрицания через данную функцию f (X, y, z) и её отрицание
Многочлен Жегалкина
Многочлен Жегалкина – это представление
булевой функции в виде арифметического
выражения, а точнее – в виде многочлена
,
причём значения переменных x,
y, z и значения
полученных выражений рассматриваются
в кольце вычетов по модулю 2. При этом
каждое чётное число заменяют 0, а каждое
нечётное – 1.
Есть несколько способов вычисления этих коэффициентов, мы рассмотрим два способа.
Первый способ: метод неопределённых коэффициентов.
Подставим в многочлен все возможные наборы x, y, z и получим 8 условий на 8 коэффициентов. При этом матрица системы будет содержать много нулей.
Например, f (0, 0, 0) = a0 = 0 (значение берём из таблицы истинности).
Далее, f (0, 0, 1) = a0 + a3 = 1, поэтому a3 = 1. И так далее, на каждом уравнении будем получать новый коэффициент.
В итоге получим: a3 = 1, a12 = 1, a23 = 1.
Тогда многочлен Жегалкина имеет вид: z + xy + yz.
Второй способ: использование СДНФ.
Как и следовало ожидать, ответ для второго способа вычисления многочлена Жегалкина совпал с ответом для первого способа.
Если эти ответы различаются, необходимо проверить выкладки.
В ответе с многочленом Жегалкина принято записывать слагаемые в лексикографическом порядке.
Двойственная функция
Определение. Пусть f – некоторая булева функция. Тогда двойственной к f (обозначается f*) называют функцию, таблица истинности которой получается из таблицы истинности f заменой всех 0 на 1, а всех 1 на 0.
Такую операцию называют инвертированием таблицы истинности.
Примечание.
Инвертирование происходит не только со значениями функции, но и со значениями x и y. Поэтому после построения таблицы её нужно будет «перевернуть», то есть переставить все строки в обратном порядке.
Посмотрим, например, что произойдёт с дизъюнкцией при такой замене.
x |
y |
|
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
После инвертирования таблицы
x |
y |
|
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
Поскольку в таблице истинности записывают значения переменных в лексикографическом порядке, таблицу следует перевернуть.
x |
y |
|
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Из полученной таблицы видно, что значения функции, двойственной к конъюнкции, совпали со значениями дизъюнкции.
Следовательно,
.
Аналогично можно обосновать такие равенства.
Нахождение таблицы значений функции, двойственной к данной булевой функции
Это действие сводится к композиции инвертирования и переворота.
Например, для функции со значениями (0, 1, 0, 0, 0, 1, 1, 1) значения двойственной можно получить следующим образом.
Инвертирование (1, 0, 1, 1, 1, 0, 0, 0).
Переворот (0, 0, 0, 1, 1, 1, 0, 1).
То есть значения двойственной функции будут такими: (0, 0, 0, 1, 1, 1, 0, 1).
Гораздо более творческое задание – получить формулу для функции, двойственной к данной булевой функции, используя теорему о двойственной к суперпозиции функций.
При этом используется следующая идея.
Если α и β – две булевы функции, то,
например,
.
Аналогично вычисляется двойственная
для других выражений, например, XOR
заменяют эквивалентностью, а эквивалентность
– XOR.
Например, если
,
то
Для самопроверки следует построить таблицу значений этой функции и сравнить с таблицей для f*, полученной композицией инверсии и переворота.