Функциональная проблема
В теории вычислительной сложности функциональная задача — это вычислительная задача , в которой для каждого входного сигнала ожидается один выходной результат ( полной функции ), но выходной результат более сложен, чем у задачи решения . В случае функциональных проблем выходными данными являются не просто «да» или «нет».
Формальное определение [ править ]
Функциональная проблема определяется соотношением над строками произвольного алфавита :
Алгоритм решает если для каждого входа такой, что существует удовлетворяющий , алгоритм выдает один такой , а если таких нет , он отклоняет.
Задаче функции обещания разрешено делать что угодно (поэтому она не может завершиться), если нет такой задачи. существует.
Примеры [ править ]
Хорошо известная функциональная проблема представляет собой Функциональную Булеву задачу выполнимости, FSAT сокращенно . Проблему, тесно связанную с проблемой решения SAT , можно сформулировать следующим образом:
- Дана булева формула с переменными , найти задание такой, что оценивается как или решить, что такого назначения не существует.
В этом случае отношение задается кортежами соответствующим образом закодированных логических формул и удовлетворяющих присваиваний.В то время как алгоритм SAT, основанный на формуле , нужно только возвращать «невыполнимо» или «выполнимо», в последнем случае алгоритм FSAT должен возвращать некоторое удовлетворяющее присваивание.
Другие известные примеры включают задачу коммивояжера , в которой запрашивается маршрут, пройденный продавцом, и задачу факторизации целых чисел , в которой запрашивается список факторов.
Связь с другими классами сложности [ править ]
Рассмотрим задачу произвольного решения в классе НП . По определению NP , каждый экземпляр проблемы на что получен ответ «да», имеет сертификат полиномиального размера что служит доказательством ответа «да». Таким образом, множество этих кортежей образует отношение, представляющее функциональную задачу «при условии в , найти сертификат для ". Эта функциональная задача называется вариантом функциональным ; он принадлежит к классу FNP .
FNP можно рассматривать как аналог NP функционального класса , в котором решения проблем FNP могут быть эффективно (т. е. за полиномиальное время с точки зрения длины входных данных) проверены , но не обязательно эффективно найдены . Напротив, класс FP , который можно рассматривать как аналог функционального класса P , состоит из функциональных задач, решения которых можно найти за полиномиальное время.
Самосократимость [ править ]
Обратите внимание, что проблема FSAT, представленная выше, может быть решена, используя только полиномиальное число вызовов подпрограммы, которая решает проблему SAT : Алгоритм может сначала спросить, соответствует ли формула является удовлетворительным. После этого алгоритм может исправить переменную выберите TRUE и спросите еще раз. Если полученная формула по-прежнему выполнима, алгоритм сохраняет зафиксировано в TRUE и продолжает исправлять , в противном случае он решает, что должно быть ЛОЖЬ и продолжается. Таким образом, FSAT разрешима за полиномиальное время с использованием оракула, решающего SAT . В общем, проблема в NP называется самосократимой , если ее функциональный вариант может быть решен за полиномиальное время с помощью оракула, решающего исходную задачу. Любая NP-полная задача саморедуцируема. Предполагается, что [ кем? ] что проблема факторизации целых чисел не является самосократимой, поскольку решение о том, является ли целое число простым, находится в P (легко), [1] в то время как задача целочисленной факторизации считается сложной для классического компьютера.Существует несколько (немного отличающихся) понятий самосократимости. [2] [3] [4]
Сокращения и полные задачи [ править ]
Функциональные проблемы можно уменьшить так же, как и проблемы принятия решений: заданные функциональные проблемы и мы говорим это сводится к если существуют функции, вычислимые за полиномиальное время и такой, что для всех случаев из и возможные решения из , он утверждает, что
- Если имеет -решение, то имеет -решение.
Следовательно, можно определить FNP-полные задачи, аналогичные NP-полной задаче:
Проблема является FNP-полной , если каждую задачу из FNP можно свести к . Класс сложности FNP-полных задач обозначается FNP-C или FNPC . Следовательно, задача FSAT также является FNP-полной задачей и справедливо равенство тогда и только тогда, когда .
Всего проблем с функциями [ править ]
Отношение используемый для определения функциональных проблем, имеет тот недостаток, что он является неполным: не каждый ввод имеет аналог такой, что . Поэтому вопрос о вычислимости доказательств не отделен от вопроса об их существовании. Чтобы преодолеть эту проблему, удобно рассмотреть ограничение функциональных задач на полные отношения, в результате чего класс TFNP становится подклассом FNP . Этот класс содержит такие задачи, как вычисление чистого равновесия Нэша в некоторых стратегических играх, где гарантированно существует решение. Кроме того, если TFNP содержит какую-либо FNP-полную задачу, отсюда следует, что .
См. также [ править ]
Ссылки [ править ]
- ^ Агравал, Маниндра; Каял, Нирадж; Саксена, Нитин (2004). «ПРАЙМС находится в P» (PDF) . Анналы математики . 160 (2): 781–793. дои : 10.4007/анналы.2004.160.781 . JSTOR 3597229 .
- ^ Ко, К. (1983). «О самосократимости и слабой P-селективности». Журнал компьютерных и системных наук . 26 (2): 209–221.
- ^ Шнорр, К. (1976). «Оптимальные алгоритмы для самоприводимых задач». В С. Майклсоне и Р. Милнере, редакторах, Труды 3-го Международного коллоквиума по автоматам, языкам и программированию : 322–337.
- ^ Селман, А. (1988). «Натуральные самосократимые множества». SIAM Journal по вычислительной технике . 17 (5): 989–996.
![]() | Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( Октябрь 2015 г. ) |
- Рэймонд Гринлоу, Х. Джеймс Гувер, Основы теории вычислений: принципы и практика , Морган Кауфманн, 1998, ISBN 1-55860-474-X , стр. 45-51
- Элейн Рич , Автоматы, вычислимость и сложность: теория и приложения , Прентис Холл, 2008, ISBN 0-13-228806-0 , раздел 28.10 «Задачи классов FP и FNP», стр. 689–694.