Там действительно мало связи. Для более глубокого понимания позвольте мне объяснить связь между программами и схемами .
Программа (или алгоритм , или машина ) представляет собой механизм для вычисления функции. Для определенности предположим, что вход является двоичной строкой , а выход - логическим выходом b.xb . Размер входа потенциально неограничен. Одним из примеров является программа, которая определяет, является ли ввод двоичной кодировкой простого числа.
(Булева) схема представляет собой набор инструкций для вычисления некоторой конечной функции. Мы можем изобразить схему как электрическую схему или представить ее как последовательность инструкций (эта точка зрения называется смущающей прямой программой ). Конкретно, мы можем предположить, что входные данные являются двоичной строкой длины n , а выходные данные являются логическими. Одним из примеров является схема, которая определяет, кодирует ли вход простое число (как и раньше, только теперь вход должен иметь длину n).x nn ).
Мы можем преобразовать программу в схему P n, которая имитирует P на входах длины n . Соответствующая последовательность цепей P 0 , P 1 , P 2 , ... не является произвольной - все они могут быть построены с помощью программы, которая дает n выходов P n . Мы называем такую последовательность цепей однородной цепью (в замешательстве мы часто думаем о последовательности как о «единственной» схеме P n для неопределенного n ).PPnPnP0,P1,P2,…nPnPnn
Не каждая последовательность цепей одинакова. Действительно, последовательность схем может вычислять каждую функцию от строк до логического, вычислимого или не вычисляемого! Тем не менее, в теории сложности нас интересуют такие неоднородные модели, в которых схемы ограничены. Например, вопрос P = NP утверждает, что NP-полные задачи не могут быть решены алгоритмами полиномиального времени. Это означает, что NP-полные проблемы не могут быть решены с помощью однородных схем полиномиального размера. Более того, предполагается, что NP-полные задачи не могут быть решены с помощью схем полиномиального размера без требования однородности .
Модели полного вычисления по Тьюрингу - это модели, которые реализуют все вычислимые функции (и не более). Напротив, полные системы вентилей (такие как AND, OR, NOT или NAND) позволяют вычислять произвольные конечные функции, используя схемы, выполненные из этих вентилей. Такие полные системы могут вычислять совершенно произвольные функции, используя (неограниченные) последовательности цепей.