Дизъюнктивно-универсальные множества функций алгебры логики

Дизъюнктивно-универсальное множество G⊆P₂(m) порядка m и ранга p — такое множество ФАЛ, что любую g∈P₂(m) можно представить как дизъюнкцию p функций из G: \(g=g_{1}\lor \ldots \lor g_p\).1

Стандартное ДУМ строят по разбиению куба \(B^m\) на p частей. Для каждой части берут функции, которые равны нулю вне неё. Тогда произвольная g раскладывается на свои ограничения по компонентам разбиения. ДУМ позволяет заменить реализацию всех возможных m-местных функций общей реализацией значительно меньшего набора строительных блоков.1

Что важно запомнить
  • Порядок ДУМ m — число переменных функций из G.
  • Ранг p — число функций из G, дизъюнкцией которых представляется произвольная g∈P₂(m).1
  • При разбиении \(\Pi=(\pi_{1},\ldots,\pi_p)\) можно взять \(g_i=\psi_i\cdot g\), где \(\psi_i\) — характеристическая функция \(\pi_i\).
  • Тогда \(g=g_{1}\lor \ldots \lor g_p\), а каждый \(g_i\) поддерживается только на своей части куба.1
  • Если максимальная мощность части равна s, стандартная конструкция даёт \(|G|\le p\cdot 2^s\).
  • ДУМ является инструментом компактного синтеза, а не функционально полным базисом в обычном смысле.

Определение

Множество G⊆P₂(m) называется дизъюнктивно-универсальным множеством порядка m и ранга p, если для любой m-местной ФАЛ g существуют \(g_{1},\ldots,g_p\in G\) такие, что \(g=g_{1}\lor \ldots \lor g_p\). Важен именно ограниченный набор готовых функций G, из которого можно собирать любую функцию класса.1

Стандартная конструкция по разбиению куба

Пусть \(\Pi=(\pi_{1},\ldots,\pi_p)\) разбивает \(B^m\), а \(\psi_i\) является характеристической функцией \(\pi_i\). Для каждой части \(\pi_i\) рассматривают множество G(i) функций, равных нулю вне \(\pi_i\). Тогда для произвольной g можно положить \(g_i=\psi_i\cdot g\). Функция \(g_i\) совпадает с g на \(\pi_i\) и равна нулю вне неё, поэтому \(g=g_{1}\lor \ldots \lor g_p\). Объединение G(1)∪…∪G(p) является ДУМ.1

Если каждая часть содержит не более s наборов, то число возможных функций на одной части не превосходит \(2^s\), и получается оценка \(|G|\le p\cdot 2^s\). В стандартном ДУМ высота s и ранг p подбираются так, чтобы это множество было достаточно малым для общей реализации в схеме.

Зачем ДУМ нужно в синтезе

В методе Лупанова большое семейство кофакторов не реализуют независимо. Каждый кофактор сначала раскладывают в дизъюнкцию небольшого числа функций из одного ДУМ. Сами функции G реализуются один раз и затем многократно используются. Так уменьшается цена универсального блока по сравнению с методом Шеннона.1

Пример простыми словами

Если куб \(B^m\) разбить на две части π₁ и π₂, любую функцию g можно разделить на два фрагмента: g₁ совпадает с g на π₁ и равна нулю на π₂, а g₂ устроена наоборот. Тогда g=g₁∨g₂. ДУМ обобщает эту идею на p частей и заранее собирает все возможные локальные фрагменты.

Частые ошибки
  • Путать порядок m и ранг p. Это разные параметры ДУМ.
  • Считать ДУМ обычным функционально полным базисом. Требование здесь специальное: представление дизъюнкцией ограниченного числа функций из G.
  • Полагать, что части разбиения должны быть гранями куба. В определении достаточно разбиения на множества наборов.
  • Реализовывать каждую исходную функцию независимо и тем самым терять смысл универсального набора G.

Другие вопросы

Источники

  1. 1 Ложкин С. А. Лекции по основам кибернетики Вариант 2017 г. (гр. 311–319), глава 3, §6, определение ДУМ и лемма 6.1, МГУ, факультет ВМК