Проблема с функцией

Тип вычислительной задачи

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

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

Функциональная задача определяется отношением между строками произвольного алфавита : П {\displaystyle P} Р {\displaystyle R} Σ {\displaystyle \Сигма}

Р Σ × Σ . {\displaystyle R\subseteq \Сигма ^{*}\times \Сигма ^{*}.}

Алгоритм решает , если для каждого входного значения, такого что существует удовлетворяющее , алгоритм выдает одно такое , а если таких нет , он отклоняет. П {\displaystyle P} х {\displaystyle x} у {\displaystyle у} ( х , у ) Р {\displaystyle (x,y)\in R} у {\displaystyle у} у {\displaystyle у}

Задача функции обещания может выполнять любые действия (и, следовательно, не может быть завершена), если таковой не существует. у {\displaystyle у}

Примеры

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

Для данной булевой формулы с переменными найдите присваивание , которое оценивается как или решите, что такого присваивания не существует. φ {\displaystyle \varphi} х 1 , , х н {\displaystyle x_{1},\ldots ,x_{n}} х я { истинный , ЛОЖЬ } {\displaystyle x_{i}\rightarrow \{{\text{ИСТИНА}},{\text{ЛОЖЬ}}\}} φ {\displaystyle \varphi} истинный {\displaystyle {\text{ИСТИНА}}}

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

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

Связь с другими классами сложности

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

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

Самоприводимость

Обратите внимание, что задача FSAT, представленная выше, может быть решена с использованием только полиномиально большого числа вызовов подпрограммы, которая решает задачу SAT : Алгоритм может сначала спросить, выполнима ли формула . После этого алгоритм может зафиксировать переменную в TRUE и спросить снова. Если полученная формула все еще выполнима, алгоритм сохраняет фиксированное значение TRUE и продолжает фиксировать , в противном случае он решает, что должно быть FALSE, и продолжает. Таким образом, FSAT разрешима за полиномиальное время с использованием оракула, решающего SAT . В общем случае задача из NP называется самоприводимой , если ее функциональный вариант может быть решен за полиномиальное время с использованием оракула, решающего исходную задачу. Каждая NP-полная задача является самоприводимой. Предполагается [ кем? ] , что задача разложения целых чисел на множители не является самоприводимой, потому что решение, является ли целое число простым, находится в P (легко), [1], в то время как задача разложения целых чисел на множители считается сложной для классического компьютера. Существует несколько (немного отличающихся) понятий саморедуцируемости. [2] [3] [4] φ {\displaystyle \varphi} х 1 {\displaystyle x_{1}} х 1 {\displaystyle x_{1}} х 2 {\displaystyle x_{2}} х 1 {\displaystyle x_{1}}

Сокращения и полные проблемы

Проблемы с функциями можно свести к тому же, что и проблемы с принятием решений: для данных проблем с функциями и мы говорим, что сводится к , если существуют вычислимые за полиномиальное время функции и такие, что для всех случаев и возможных решений выполняется следующее : П Р {\displaystyle \Пи _{R}} П С {\displaystyle \Пи _{С}} П Р {\displaystyle \Пи _{R}} П С {\displaystyle \Пи _{С}} ф {\displaystyle f} г {\displaystyle г} х {\displaystyle x} Р {\displaystyle R} у {\displaystyle у} С {\displaystyle S}

  • Если имеет -решение, то имеет -решение. х {\displaystyle x} Р {\displaystyle R} ф ( х ) {\displaystyle f(x)} С {\displaystyle S}
  • ( ф ( х ) , у ) С ( х , г ( х , у ) ) Р . {\displaystyle (f(x),y)\in S\implies (x,g(x,y))\in R.}

Поэтому можно определить FNP-полные задачи, аналогичные NP-полным задачам:

Задача является FNP-полной, если каждая задача из FNP может быть сведена к . Класс сложности FNP-полных задач обозначается FNP-C или FNPC . Следовательно, задача FSAT также является FNP-полной задачей, и выполняется это тогда и только тогда, когда . П Р {\displaystyle \Пи _{R}} П Р {\displaystyle \Пи _{R}} П = Н П {\displaystyle \mathbf {P} =\mathbf {NP} } Ф П = Ф Н П {\displaystyle \mathbf {FP} =\mathbf {FNP} }

Проблемы с функциями всего

Отношение, используемое для определения функциональных задач, имеет недостаток, заключающийся в его неполноте: не каждый вход имеет аналог такой, что . Поэтому вопрос вычислимости доказательств не отделен от вопроса их существования. Чтобы преодолеть эту проблему, удобно рассмотреть ограничение функциональных задач до полных отношений, что дает класс TFNP как подкласс FNP . Этот класс содержит такие задачи, как вычисление чистых равновесий Нэша в некоторых стратегических играх, где гарантированно существует решение. Кроме того, если TFNP содержит любую FNP-полную задачу, то следует, что . Р ( х , у ) {\displaystyle R(x,y)} х {\displaystyle x} у {\displaystyle у} ( х , у ) Р {\displaystyle (x,y)\in R} Н П = со-НП {\displaystyle \mathbf {NP} = {\textbf {co-NP}}}

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

Ссылки

  1. ^ Агравал, Маниндра; Каял, Нирадж; Саксена, Нитин (2004). «ПРАЙМС находится в P» (PDF) . Анналы математики . 160 (2): 781–793. дои : 10.4007/анналы.2004.160.781 . JSTOR  3597229.
  2. ^ Ко, К. (1983). «О самоприводимости и слабой P-селективности». Журнал компьютерных и системных наук . 26 (2): 209–221. doi :10.1016/0022-0000(83)90013-2.
  3. ^ Шнорр, К. (1976). «Оптимальные алгоритмы для самоприводимых задач». В S. Michaelson и R. Milner, Editors, Proceedings of the 3rd International Colloquium on Automata, Languages, and Programming : 322–337.
  4. ^ Selman, A. (1988). «Естественные самоприводимые множества». SIAM Journal on Computing . 17 (5): 989–996. doi :10.1137/0217062.
  • Рэймонд Гринлоу, Х. Джеймс Гувер, Основы теории вычислений: принципы и практика , Морган Кауфманн, 1998, ISBN 1-55860-474-X , стр. 45-51 
  • Элейн Рич , Автоматы, вычислимость и сложность: теория и приложения , Prentice Hall, 2008, ISBN 0-13-228806-0 , раздел 28.10 «Классы задач FP и FNP», стр. 689–694 
Взято с "https://en.wikipedia.org/w/index.php?title=Проблема_функции&oldid=1251643662"