Алгоритмические трудности синтеза минимальных схем: инвариантные классы и результат С. В. Яблонского

Инвариантный класс Q⊆P₂ замкнут относительно трёх операций: добавления и удаления фиктивных переменных, переименования переменных без их отождествления и подстановки констант вместо части переменных. Именно такие классы используются С. В. Яблонским для формализации неизбежности перебора при поиске функций с максимально сложной схемной реализацией.1

Последовательность f₁,f₂,… называется сложной, если в ней встречаются функции максимальной схемной сложности для сколь угодно больших чисел переменных. Теорема Яблонского утверждает: любой правильный алгоритм, строящий сложную последовательность, строит всё множество \(P_{2}\). Это результат о невозможности элиминации полного перебора в данной модели, а не утверждение об NP-полноте.1

Что важно запомнить
  • Инвариантность означает замкнутость относительно фиктивных переменных, переименования без отождествления и подстановки констант.1
  • Сложная функция \(f_n\) удовлетворяет \(L(f_n)=L(n)\).
  • Сложная последовательность должна содержать такие функции для сколь угодно больших n, но не обязана состоять из максимальных функций при каждом n.1
  • Правильный алгоритм строит все функции минимального инвариантного класса, содержащего построенную последовательность.
  • Теорема 2.6 Яблонского: правильный алгоритм, строящий сложную последовательность, строит всё P₂.1
  • Содержательный вывод — в этой постановке полный перебор всех ФАЛ устранить нельзя.

Инвариантные классы

Класс Q⊆P₂ называется инвариантным, если вместе с каждой f он содержит функции, получаемые добавлением или удалением фиктивных переменных, переименованием переменных без отождествления и фиксацией части переменных константами. Линейные и монотонные функции дают примеры инвариантных классов.1

Для инвариантного класса вводится характеристика σ, отражающая асимптотическую мощность Q(n). Если Q отличается от всего P₂, то σ<1. Результат Лупанова, используемый в доказательстве Яблонского, показывает, что функции такого собственного инвариантного класса имеют максимальную сложность не более \(\sigma\cdot 2^n/n\) в главном члене.1

Сложная последовательность

Функция \(f_n\) называется сложной, если \(L(f_n)=L(n)\), то есть достигает функции Шеннона СФЭ. Последовательность f₁(x₁), f₂(x₁,x₂), … называется сложной, если для любого N найдётся n≥N, при котором \(f_n\) сложна. Следовательно, максимальные по сложности функции должны встречаться бесконечно часто, но не обязательно при каждом n.1

Правильный алгоритм и теорема Яблонского

Алгоритм, строящий бесконечную последовательность ФАЛ, называется правильным, если вместе с ней он строит все функции минимального инвариантного класса, содержащего эту последовательность. Теорема 2.6 Яблонского утверждает: любой правильный алгоритм, строящий сложную последовательность, строит всё \(P_{2}\).1

Если бы построенная сложная последовательность лежала в собственном инвариантном \(Q_\sigma\), то σ<1 и для достаточно больших n сложность всех функций этого класса была бы асимптотически меньше \(2^n/n\). Это противоречит наличию в последовательности сколь угодно больших максимальных функций. Поэтому минимальный инвариантный класс сложной последовательности — всё P₂.

Смысл результата

Теорема формализует невозможность элиминации перебора всех булевых функций при построении сложной последовательности правильным алгоритмом. Она не говорит, что любой практический алгоритм минимизации конкретной схемы обязан буквально перечислять P₂, и не является утверждением об NP-полноте. Эти вопросы в пособии рассматриваются отдельно.1

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

Представьте алгоритм, который строит сложную последовательность и затем «правильно» замыкает её относительно разрешённых операций. Вместе с найденными функциями он обязан получить их переименования, подстановки констант и варианты с фиктивными переменными. Если бы получившийся минимальный инвариантный класс был собственным \(Q_\sigma\) с \(\sigma<1\), то для достаточно больших \(n\) в нём не могло бы оставаться функций максимальной сложности \(L(n)\). Поэтому минимальный инвариантный класс сложной последовательности должен быть всем \(P_2\).

Частые ошибки
  • Понимать инвариантный класс как класс, замкнутый относительно произвольной суперпозиции. В данном результате используется другой набор трёх операций.
  • Считать, что сложная последовательность обязана содержать максимальную функцию при каждом n. Достаточно сколь угодно больших n.
  • Обобщать теорему до утверждения, что любой алгоритм минимального синтеза всегда перебирает всё P₂. Результат относится к правильным алгоритмам и сложным последовательностям.
  • Смешивать результат Яблонского с NP-полнотой. В пособии это отдельные разделы и разные подходы к алгоритмической сложности.

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

Источники

  1. 1 Сапоженко А. А. Некоторые вопросы сложности алгоритмов М.: МГУ, факультет ВМК, 2001, §2, инвариантные классы, теоремы 2.3–2.6 и вывод о невозможности элиминации перебора