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

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

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

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

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

Примеры

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

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

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

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

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

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

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

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

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

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

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

  • Если есть -решение, то есть -решение.

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

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

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

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

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

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

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