Функциональная проблема - Function problem

В теория сложности вычислений, а функциональная проблема это вычислительная проблема где один выход (из общая функция ) ожидается для каждого входа, но выход более сложный, чем у проблема решения. Для функциональных проблем вывод не просто «да» или «нет».

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

Функциональная проблема определяется как отношение над струны произвольного алфавит :

Алгоритм решает если для каждого входа такой, что существует удовлетворение , алгоритм выдает один такой .

Примеры

Хорошо известная функциональная проблема - это проблема функциональной булевой выполнимости, FSAT короче. Проблема, которая тесно связана с СИДЕЛ Решение задачи можно сформулировать следующим образом:

Учитывая булеву формулу с переменными , найди задание такой, что оценивает или решите, что такого назначения не существует.

В этом случае соотношение задается кортежами соответствующим образом закодированных булевых формул и удовлетворяющих присваиваний. В то время как алгоритм SAT с формулой , требуется только вернуть «неудовлетворительно» или «выполнимо», алгоритм FSAT должен вернуть некоторое удовлетворительное присвоение в последнем случае.

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

Отношение к другим классам сложности

Рассмотрим произвольный проблема решения в классе НП. По определению НП, каждый экземпляр проблемы на который дан ответ "да", имеет сертификат полиномиального размера что служит доказательством утвердительного ответа. Таким образом, множество этих наборов образует отношение, представляющее "функциональную проблему" в , найди сертификат для ". Эта функциональная проблема называется вариант функции из ; он принадлежит к классу ФНП.

ФНП можно рассматривать как аналог функционального класса НП, в том, что решения ФНП проблемы могут быть эффективно (т.е. полиномиальное время по длине входа) проверено, но не обязательно эффективно найденный. Напротив, класс FP, который можно рассматривать как аналог класса функций п, состоит из функциональных задач, решение которых может быть найдено за полиномиальное время.

Самовосстановление

Обратите внимание, что проблема FSAT введенное выше, может быть решено с использованием только полиномиально большого количества вызовов подпрограммы, которая решает СИДЕЛ проблема: алгоритм может сначала спросить, является ли формула выполнимо. После этого алгоритм может исправить переменную ИСТИНА и спросить еще раз. Если полученная формула все еще выполняется, алгоритм сохраняет установлен на ИСТИНА и продолжает исправлять , в противном случае он решает, что должно быть ЛОЖЬ и продолжается. Таким образом, FSAT разрешимо за полиномиальное время с помощью оракул решение СИДЕЛ. В общем проблема в НП называется самовосстанавливающийся если его функциональный вариант может быть решен за полиномиальное время с помощью оракула, решающего исходную задачу. Каждые НП-полный проблема самовосстанавливающаяся. Предполагается[кем? ] что проблема целочисленной факторизации не является самосокращаемой.

Редукции и полные проблемы

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

  • Если имеет -Решение, тогда имеет -решение.

Следовательно, можно определить ФНП-полный задачи, аналогичные NP-полной задаче:

Проблема является ФНП-полный если каждая проблема в ФНП можно свести к . Класс сложности ФНП-полный проблемы обозначается FNP-C или FNPC. Отсюда проблема FSAT также является ФНП-полный проблема, и он считает, что если и только если .

Общие функциональные проблемы

Соотношение используется для определения функциональных проблем, имеет недостаток в том, что он неполный: не каждый ввод имеет аналог такой, что . Поэтому вопрос о вычислимости доказательств неотделим от вопроса об их существовании. Чтобы преодолеть эту проблему, удобно рассмотреть ограничение функциональных задач на тотальные отношения, дающие класс TFNP как подкласс ФНП. Этот класс содержит такие задачи, как вычисление чистого Равновесия Нэша в определенных стратегических играх, где гарантированно существует решение. Кроме того, если TFNP содержит любые ФНП-полный проблема следует, что .

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

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

  • Раймонд Гринлоу, Х. Джеймс Гувер, Основы теории вычислений: принципы и практика, Морган Кауфманн, 1998 г., ISBN  1-55860-474-X, п. 45-51
  • Элейн Рич, Автоматы, вычислимость и сложность: теория и приложения, Прентис Холл, 2008 г., ISBN  0-13-228806-0, раздел 28.10 «Проблемы классов FP и FNP», стр. 689–694.