Самодвойственная функция: свойства и применение

Самодвойственные функции - удивительный и полезный объект теории булевых функций. Давайте разберемся в их свойствах и возможностях применения на практике.

Определение и основные свойства самодвойственных функций

Формально, самодвойственная функция - это функция f(x1,...,xn), которая для любого набора аргументов x1,...,xn принимает то же значение, что и для инвертированных аргументов ¬x1,...,¬xn:

f(x1,...,xn) = f(¬x1,...,¬xn)

Например, функция f(x,y,z) = x ⊕ y ⊕ z является самодвойственной. А вот функция g(x,y) = x ∧ ¬y уже не является таковой.

Максимальное число существенных переменных в самодвойственной функции равно 2n-2. Это следует из того, что при числе переменных 0 или 1 самодвойственна любая функция, а при 2 переменных число таких функций строго 4.

Самодвойственная функция тесно связана с понятием линейной функции. Линейная функция является самодвойственной тогда и только тогда, когда она зависит от нечетного числа переменных. Это можно доказать, analdanized симметрию значений функции относительно инверсии аргументов.

Луг с симметрично расположенными скирдами напоминает график самодвойственной функции

Графическое представление самодвойственных функций

Графики самодвойственных функций имеют интересную особенность: они симметричны относительно биссектрисы первого и третьего координатных углов в пространстве значений функции. То есть если поменять 0 на 1 по всем аргументам, значение функции также поменяется на противоположное.

Визуализировать такие функции можно с помощью кривых Вили - замкнутых кривых на плоскости или в пространстве, обладающих свойством самодвойственности. Ниже приведен пример кривой Вили для функции трех аргументов:

Построение подобных графиков можно автоматизировать с помощью программных средств. Например, используя библиотеки matplotlib в Python.

Представление самодвойственных функций

Существует несколько способов задания булевых функций, в том числе самодвойственных:

  • Таблицы истинности
  • Полиномы Жегалкина
  • Формулы на языке логики

Например, рассмотрим самодвойственная функция примеры f(x,y,z) = x ⊕ y ⊕ z. Ее таблица истинности будет выглядеть так:

x y z f(x,y,z)
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1

В виде полинома Жегалкина эта функция будет записана как f(x,y,z) = x ⊕ y ⊕ z. А на языке логики ее можно представить так: f(x,y,z) = (x ∨ y ∨ z) ∧ (¬(x ∧ y) ∧ ¬(x ∧ z) ∧ ¬(y ∧ z)).

Выбор того или иного представления зависит от решаемой задачи. Например, для анализа свойств удобны таблицы истинности, а для компактной записи - полиномы Жегалкина.

Токио вечером с неоновыми вывесками

Приложения самодвойственных функций

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

Симметричное шифрование

Одно из важнейших свойств самодвойственных функций - обратимость преобразования при инверсии аргументов. Это свойство используется в схемах симметричного шифрования, таких как шифр Фейстеля. Функция раундового преобразования в таких шифрах выбирается самодвойственной, что позволяет использовать единый алгоритм как для зашифрования, так и для расшифрования.

Генераторы псевдослучайных последовательностей

Самодвойственные функции могут применяться в построении генераторов псевдослучайных bit-последовательностей. Например, для генерации двоичной последовательности заданной длины используется самодвойственная функция от n аргументов. На каждом такте генерации меняется только один разряд на входе функции, а выход функции добавляется в выходную последовательность.

Теория кодирования

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

Обобщения понятия самодвойственности

Существует несколько обобщений понятия самодвойственной функции.

Почти самодвойственные функции

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

Самодвойственность относительно произвольной подстановки

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

Тесно связано с самодвойственной функция понятие автодвойственной функции. Последняя удовлетворяет более строгому требованию: f(x1,...,xn) = f(¬x1,...,¬xn) для любой подстановки аргументов.

Другие области применения

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

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

Самодвойственные функции в дискретной математике

Изучение свойств функция двойственная сама себе тесно связано с разделом дискретная математика. В частности, самодвойственные функции являются частным случаем булевых функций – одного из основных объектов дискретной математики.

Многие интересные свойства самодвойственных функций были открыты именно в контексте дискретной математики. Например, теоремы о связи самодвойственности и линейности, о полноте множества таких функций и другие.

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

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.