Логическая функция - Boolean function

Бинарная схема решения и истина таблица тройной булевой функции

В математике , А булева функция является функцией , чьи аргументы и результат принимают значения из множества из двух элементов (обычно {True, False}, {0,1} или {-1,1}). Альтернативными названиями являются функция переключения , особенно используемая в более старой литературе по информатике , и функция истинности (или логическая функция) , используемая в логике . Булевы функции являются предметом булевой алгебры и теории переключений .

Логическая функция принимает форму , которая называется логической областью и представляет собой неотрицательное целое число, называемое арностью функции. В случае , когда «функция» является постоянным элементом . Функция Логической с несколькими выходами, с представляет собой векторная или вектор- булева функция (ые S-окно в криптографии ).

Существуют разные логические функции с аргументами; равно количеству различных таблиц истинности с записями.

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

Примеры

Диаграмма, отображающая шестнадцать двоичных логических функций
Шестнадцать двоичных булевых функций

Элементарные симметричные булевы функции ( логические связки или логические элементы ):

  • И или соединение - истина, когда все входные данные верны ("оба")

Примером более сложной функции является функция большинства (нечетного числа входов).

Представление

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

Логическая функция может быть указана разными способами:

  • Таблица истинности : явное перечисление ее значения для всех возможных значений аргументов
    • Диаграмма Маркуанда: значения таблицы истинности, расположенные в двумерной сетке (используется в карте Карно )
    • Диаграмма двоичных решений , в которой перечислены значения таблицы истинности в нижней части двоичного дерева
    • Диаграмма Венна , изображающая значения таблицы истинности в виде раскраски областей плоскости

Алгебраически, как пропозициональная формула, использующая элементарные булевы функции:

Булевы формулы также могут отображаться в виде графика:

Для оптимизации электронных схем булевы формулы могут быть минимизированы с помощью алгоритма Куайна – Маккласки или карты Карно .

Анализ

Характеристики

Логическая функция может иметь множество свойств:

  • Константа : всегда истинно или всегда ложно независимо от аргументов.
  • Монотонный : для каждой комбинации значений аргументов изменение аргумента с false на true может привести только к переключению вывода с false на true, а не с true на false. Функция называется унифицированной по определенной переменной, если она монотонна по отношению к изменениям в этой переменной.
  • Линейный : для каждой переменной переворачивание значения переменной либо всегда влияет на значение истинности, либо никогда не имеет значения ( функция четности ).
  • Симметричный : значение не зависит от порядка его аргументов.
  • Однократное чтение : может быть выражено с помощью соединения , дизъюнкции и отрицания с одним экземпляром каждой переменной.
  • Сбалансированный : если его таблица истинности содержит равное количество нулей и единиц. Вес Хэмминга функции является число единиц в таблице истинности.
  • Бент : все его производные сбалансированы (спектр автокорреляции равен нулю)
  • Корреляция невосприимчива к m- му порядку: если выходной сигнал не коррелирован со всеми (линейными) комбинациями не более m аргументов
  • Уклончиво : если оценка функции всегда требует значения всех аргументов
  • Логическая функция является функцией Шеффера, если ее можно использовать для создания (путем композиции) любой произвольной логической функции (см. Функциональную полноту )
  • Алгебраическую степень функции является порядок самого высокого порядка одночлене в алгебраической нормальной форме

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

Производные функции

Булева функция может быть разложена с использованием теоремы Буля о разложении на положительные и отрицательные кофакторы Шеннона ( расширение Шеннона ), которые являются (k-1) -арными функциями, полученными в результате фиксации одного из аргументов (до нуля или единицы). Общие (k-арные) функции, полученные путем наложения линейного ограничения на набор входных данных (линейное подпространство), называются подфункциями .

Булевы производная функции к одному из аргументов является (к-1) -ичной функцией, верно , когда выход функции является чувствительным к выбранному входному переменному; это XOR двух соответствующих сомножителей. Производная и кофактор используются в разложении Рида – Мюллера . Эту концепцию можно обобщить как k-арную производную в направлении dx, полученную как разность (XOR) функции в x и x + dx.

Преобразование Мёбиуса (или преобразование Буля-Мёбиуса ) булевой функции - это набор коэффициентов ее полинома ( алгебраическая нормальная форма ) как функция мономиальных векторов экспонент. Это самообратное преобразование. Его можно эффективно вычислить с помощью алгоритма « бабочка»Быстрое преобразование Мёбиуса »), аналогичного быстрому преобразованию Фурье . Совпадающие булевы функции равны своему преобразованию Мёбиуса, т. Е. Их значения таблицы истинности (minterm) равны их алгебраическим (мономиальным) коэффициентам. Есть 2 ^ 2 ^ ( k −1) совпадающих функций от k аргументов.

Криптографический анализ

Преобразование Уолша булевой функции - это k-арная целочисленная функция, дающая коэффициенты разложения на линейные функции ( функции Уолша ), аналогичные разложению действительных функций на гармоники с помощью преобразования Фурье . Его квадрат - это спектр мощности или спектр Уолша . Коэффициент Уолша однобитового вектора является мерой корреляции этого бита с выходом булевой функции. Максимальный (по модулю) коэффициент Уолша известен как линейность функции. Наибольшее количество битов (порядок), для которого все коэффициенты Уолша равны 0 (т. Е. Подфункции сбалансированы), называется отказоустойчивостью , а функция называется корреляционной невосприимчивой к этому порядку. Коэффициенты Уолша играют ключевую роль в линейном криптоанализе .

Автокорреляции булевой функции является к-ичных целочисленная функция дает корреляцию между определенным набором изменений входов и функцией Ouput. Для данного битового вектора это связано с весом Хэмминга производной в этом направлении. Максимальный коэффициент автокорреляции (по абсолютной величине) известен как абсолютный показатель . Если все коэффициенты автокорреляции равны 0 (т. Е. Производные сбалансированы) для определенного числа битов, то говорят, что функция удовлетворяет критерию распространения в этом порядке; если все они равны нулю, то функция является бент-функцией . Коэффициенты автокорреляции играют ключевую роль в дифференциальном криптоанализе .

Коэффициенты Уолша булевой функции и ее коэффициенты автокорреляции связаны эквивалентом теоремы Винера – Хинчина , которая утверждает, что автокорреляция и спектр мощности являются парой преобразования Уолша.

Эти концепции можно естественным образом расширить до векторных булевых функций, рассматривая их выходные биты ( координаты ) по отдельности, или, более тщательно, рассматривая набор всех линейных функций выходных битов, известных как его компоненты . Набор преобразований Уолша компонентов известен как таблица линейного приближения (LAT) или корреляционная матрица ; он описывает корреляцию между различными линейными комбинациями входных и выходных битов. Набор коэффициентов автокорреляции компонентов представляет собой таблицу автокорреляции , связанную преобразованием Уолша компонентов с более широко используемой таблицей распределения различий (DDT), в которой перечислены корреляции между различиями входных и выходных битов (см. Также: S-блок ).

Действительная полиномиальная форма

На единичном гиперкубе

Любая логическая функция может быть однозначно расширена (интерполирована) на реальную область с помощью полилинейного полинома в , построенного путем суммирования значений таблицы истинности, умноженных на индикаторные полиномы :

Например, расширение двоичной функции XOR :
что равно
Некоторые другие примеры - отрицание ( ), AND ( ) и OR ( ). Когда все операнды независимы (не имеют общих переменных), полиномиальная форма функции может быть найдена путем многократного применения полиномов операторов в булевой формуле. Когда коэффициенты вычисляются по модулю 2, получается алгебраическая нормальная форма ( многочлен Жегалкина ).

Прямые выражения для коэффициентов полинома можно получить, взяв соответствующую производную:

Это обобщает как Мёбиус инверсия в частично упорядоченном множестве битовых векторов:
где обозначает вес битового вектора . По модулю 2 это
булево преобразование Мёбиуса , дающее коэффициенты алгебраической нормальной формы :
В обеих случаях сумма берется по всем битовым векторам , охватываемых
м , то есть «один» бит в форме подмножество одного бит м .

Когда область ограничена n-мерным гиперкубом , многочлен дает вероятность положительного результата, когда булева функция

f применяется к n независимым случайным ( Бернулли ) переменным с индивидуальными вероятностями x . Частным случаем этого факта является лемма о нагромождении для функций четности . Полиномиальная форма логической функции также может использоваться как естественное расширение нечеткой логики .

О симметричном гиперкубе

Часто булевский домен принимается равным , с ложным («0») сопоставлением с 1 и истинным («1») с -1 (см.

Анализ булевых функций ). Полином, соответствующий тогда, определяется следующим образом:
Использование симметричной логической области упрощает некоторые аспекты анализа , поскольку отрицание соответствует умножению на -1, а линейные функции являются мономами (XOR - это умножение). Таким образом, эта полиномиальная форма соответствует преобразованию Уолша (в этом контексте также известному как преобразование Фурье ) функции (см. Выше). Полином также имеет ту же статистическую интерпретацию, что и в стандартной булевой области, за исключением того, что теперь он имеет дело с ожидаемыми значениями (см. Пример
леммы о накоплении ).

Приложения

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

Свойства булевых функций имеют решающее значение в криптографии , особенно при разработке алгоритмов с симметричным ключом (см. Блок подстановки ).

В теории кооперативных игр монотонные булевы функции называются простыми играми (играми с голосованием); это понятие применяется для решения проблем теории социального выбора .

Смотрите также

использованная литература

дальнейшее чтение