♯P - ♯P

В теория сложности вычислений, класс сложности (произносится как «диез P» или иногда «число P» или «хэш P») - это набор проблемы с подсчетом связанный с проблемы решения в наборе НП. Более формально является классом функциональных задач вида "вычислить ж(Икс)", куда ж количество принимающих путей недетерминированная машина Тьюринга работает в полиномиальное время. В отличие от большинства известных классов сложности, это не класс проблемы решения но класс функциональные проблемы. Наиболее сложными типичными задачами этого класса являются: ♯P-полный.

Отношение к проблемам решения

An НП Проблема решения часто имеет форму «Существуют ли решения, удовлетворяющие определенным ограничениям?» Например:

Соответствующие функциональные проблемы спрашивают «сколько», а не «есть ли какие-нибудь». Например:

  • Сколько подмножеств списка целых чисел в сумме дают ноль?
  • Сколько гамильтоновых циклов в данном графе стоили меньше 100?
  • Сколько присвоений переменных удовлетворяют данной формуле CNF?
  • Сколько корней действительного многочлена одной переменной положительны?

Насколько это сложно?

Ясно, что задача должна быть не менее сложной, чем соответствующая НП проблема. Если подсчитать ответы легко, то должно быть легко определить, есть ли какие-нибудь ответы - просто посчитайте их и посмотрите, больше ли счетчик нуля. Некоторые из этих проблем, например поиск корня, достаточно легко быть в FP, а другие ♯P-полный.

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

Удивительно, но некоторые задачи, которые считаются сложными, соответствуют легким (например, линейное время) п проблемы. Для получения дополнительной информации об этом см. # P-complete.

Ближайший класс проблемы решения к является PP, который спрашивает, принимают ли большинство (более половины) путей вычислений. Это находит самый старший бит в проблема ответ. Класс решения проблемы ⊕P (произносится как «Четность-П») вместо этого запрашивает младший значащий бит отвечать.

Формальные определения

формально определяется следующим образом:

это набор всех функций такое, что есть полиномиальное время недетерминированная машина Тьюринга такой, что для всех , равно количеству принимающих веток в график вычислений на .[1]

также может быть эквивалентно определено в терминах верифера. Проблема решения в НП если существует полиномиальная проверяемая свидетельство к данному экземпляру проблемы, то есть НП спрашивает, существует ли доказательство принадлежности для ввода, правильность которого можно проверить за полиномиальное время. Класс спрашивает Как много существуют сертификаты для экземпляра проблемы, правильность которого можно проверить за полиномиальное время.[1] В контексте, определяется следующим образом:

это набор функций такой, что существует многочлен и полиномиальное время детерминированная машина Тьюринга , называется верификатором, так что для каждого , .[2] (Другими словами, равен размеру набора, содержащего все сертификаты полиномиального размера).

История

Класс сложности был впервые определен Лесли Валиант в статье 1979 г. о вычислении постоянный из квадратная матрица, в котором он доказал, что постоянный # P-Complete.[3]

Ларри Стокмейер доказал, что для каждой проблемы #P существует рандомизированный алгоритм используя оракул для SAT, который дал экземпляр из и возвращает с высокой вероятностью число такой, что .[4] Время выполнения алгоритма полиномиально от и . Алгоритм основан на оставшаяся хеш-лемма.

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

Рекомендации

  1. ^ а б Варак, Вооз (весна 2006 г.). «Сложность подсчета» (PDF). Компьютерные науки 522: вычислительная сложность. Университет Принстона.
  2. ^ Арора, Санджив; Варак, Вооз (2009). Вычислительная сложность: современный подход. Издательство Кембриджского университета. п. 344. ISBN  978-0-521-42426-4.
  3. ^ Лесли Г. Валиант (1979). «Сложность вычисления постоянного». Теоретическая информатика. Эльзевир. 8 (2): 189–201. Дои:10.1016/0304-3975(79)90044-6.
  4. ^ Стокмейер, Ларри (ноябрь 1985). «Об алгоритмах аппроксимации для #P» (PDF). SIAM Журнал по вычислениям. 14 (4): 849. Дои:10.1137/0214060. Архивировано из оригинал (PDF) на 2009 год. Сложить резюме.

внешняя ссылка