Что такое классы FP, FNP и TFNP?

13

В своей книге « Вычислительная сложность» Пападимитриу определяет FNP следующим образом:

Предположим, что L является языком в NP . Согласно предложению 9.1, существует многочлен время разрешимо, полиномиальные сбалансировано соотношение RL таких , что для всех строк x : Существует строку y с RL(x,y) , если и только если xL . Функциональная проблема, связанная с L , обозначаемая FL , является следующей вычислительной задачей:

По заданному x найдите строку y такую, что RL(x,y) если такая строка существует; если такой строки не существует, вернуть «нет».

Класс всех функциональных проблем, связанных с языком в NP, как указано выше, называется FNP . FP является подклассом, возникающим, если мы рассмотрим только функциональные проблемы в FNP, которые могут быть решены за полиномиальное время.

(...)

(...) мы называем задачу R в общем объеме FNP, если для каждой строки x найдется хотя бы один такой y , что R ( x , y ) . Подкласс FNP, содержащий все полные функциональные проблемы, обозначается TFNP .xyR(x,y)

В диаграмме Венна в обзоре главы Пападимитриу подразумевает, что FP TFNP FNP .

Я с трудом понимаю, почему именно FP TFNP, поскольку проблемы в FP не должны быть общими как таковые.

Чтобы лучше понять, я безуспешно пробираюсь через литературу, чтобы найти водонепроницаемое определение FP , FNP и сортов.

По моему очень (скромному) мнению, я думаю, что есть немного (правильно!) Дидактического материала по этим темам.

Для решения задач классы представляют собой наборы языков (т.е. наборы строк).

Какие именно классы для функциональных задач? Это наборы отношений, языков, ...? Что такое твердое определение?

Оберон
источник
4
Общее обозначение несколько небрежно. Во-первых, FP использовался и используется для обозначения класса поли-временных функций (следовательно, итоговых) вне контекста задач поиска NP, где он был переопределен. Во-вторых, каждая проблема поиска, разрешимая за полиномиальное время, имеет полное расширение, разрешимое за полиномиальное время, поэтому в этом смысле нет большой разницы между полным и неполным определением FP, поэтому эти две проблемы связаны между собой злоупотреблением языком.
Эмиль Йержабек

Ответы:

11

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

[Предупреждение: хотя я считаю, что я правильно понял определения, некоторые из приведенных ниже вещей отражают мои личные предпочтения - я пытался уточнить, где это было.]

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

К сожалению, существует два разных определения , и, насколько я могу судить, они не эквивалентны (хотя они «морально» эквивалентны).FP

  • (определение 1) - это класс функций, которые могут быть вычислены за полиномиальное время. Всякий раз, когда вы видите F P, а это не в контексте, когда люди говорят о F N P , T F N P , это определение, которое я предполагаю.FPFPFNP,TFNP

В недетерминированном мире все становится немного смешно. Там удобно разрешать «частичные, многозначные функции». Естественно было бы также назвать такую ​​вещь бинарным отношением , то есть подмножеством . Но с точки зрения сложности часто философски и умственно полезно думать об этих вещах как о «недетерминированных функциях». Я думаю, что многие из этих определений разъясняются следующими классами (чьи определения полностью стандартизированы, если не очень хорошо известны):Σ×Σ

  • : класс «частичных многозначных функций», вычисляемых недетерминированной машиной за полиномиальное время. Это означает, что есть недетерминированная машина с многократным использованием времени, и на входе x в каждой недетерминированной ветви она может принять решение принять и сделать некоторый вывод, либо отклонить и не делать вывод. «Многозначный» выходной сигнал на входе x представляет собой набор всех выходных данных на всех недетерминированных ветвях, если вкачестве входных данныхуказан x . Обратите внимание, что этот набор может быть пустым, поэтому как «многозначная функция» он может быть только частичным. Если мы думаем об этом в терминах бинарных отношений, это соответствует отношению { ( x , y ) : yNPMVxxx .{(x,y):y is output by some branch of the computation on input x}

  • : Общее количество «функций» в N P M V , то есть на каждом входеxпринимает по крайней мере одна ветвь (и, следовательно, делает вывод по определению)NPMVtNPMVx

  • : однозначная (потенциально) частичные функции в N P M V . Однако здесь есть некоторая гибкость, заключающаяся втом, что несколько ветвей могут принять, но если любая ветка принимает, то все принимающие ветви должны быть гарантированно сделать один и тотжевывод (так, чтобы это действительно было однозначным). Тем не менее, все еще возможно, что ни одна ветвь не принимает, поэтому функция является только «частичной функцией» (т.е. не определена на всех из Σ ).NPSVNPMVΣ

  • : Однозначная общие функции в N P S V . Это действительно функции в обычном смысле слова Σ Σ . Это не слишком сложное упражнение, чтобы увидеть, что N P S V t = F P N Pc o N P (используя Def 1 для FP выше).NPSVtNPSVΣΣNPSVt=FPNPcoNP

NPMVNPSVNPSVNPMVcfgxgffвсегда являются подмножеством выходов . Тогда правильный вопрос заключается в том, имеет ли каждая «функция» функцию . Если это так, мы пишем .gNPMVNPSVNPMVcNPSV

  • PF (чуть менее стандартный) - это класс (потенциально частичных) функций, вычислимых в поли-времени. То есть, функция ( ) находится в , если есть поли-времени детерминированной машины таким образом , что на входах машина выводит , а на входы машина не выводит (/ отклоняет / говорит «нет» / как бы вы ни хотели это ).f:DΣDΣPFxDf(x)xD

  • FNP - это класс «функциональных проблем» (а не класс функций). Я бы также назвал «реляционным классом», но на самом деле, какие бы слова вы ни использовали для его описания, вам нужно прояснить себя позже, поэтому я не особенно неравнодушен к этому определению. С любым бинарным отношением связана «функциональная проблема». Что такое функциональная проблема? У меня нет четкого математического определения, как у языка / функции / отношения; скорее, оно определяется тем, что является допустимым решением: допустимым решением проблемы функции, связанной с является любая (потенциально частичная) функция такая, что еслиFNPRΣ×ΣRf(y)[R(x,y)]f выводит любой такой , а в противном случае не выводит. - это класс функциональных задач, связанных с отношениями такой, что (если рассматривать его как язык пар) и является p-сбалансированным. Таким образом, - это не класс функций и не класс языков, а класс «функциональных проблем», где «проблема» здесь определяется примерно с точки зрения того, что означает ее решение.yfFNPRRPFNP

  • TFNPТогда является классом функциональных задач в - определяемым соотношением как указано выше - такой тотален, в том смысле, что для каждого существует такой , что .FNPRRxyR(x,y)

Чтобы не приходилось писать такие вещи, как «Если каждая функция (соответственно, )» имеет решение в (соответственно, согласно вышеописанному определение), затем ... "в этом контексте используется определение 2 из , а именно:FNPTFNPPFFPFP

  • FP (определение 2) - это класс функциональных задач в которые имеют решение по времени. Можно предположить, что решение (= функция) здесь является полным, выбрав специальную строку которая не является допустимой для любого , и имея функцию, когда в противном случае не было бы допустимого . (При необходимости мы можем изменить отношение , добавляя перед каждым 1, а затем принимать в качестве строки 0; это не меняет сложности чего-либо вовлеченного).FNPy0yxy0yRyy0

Вот как эти различные определения связаны друг с другом, (определение 2, что вы и должны предполагать, поскольку оно находится в контексте, где его сравнивают с ), эквивалентно to . (def 2) эквивалентно (def 1).FNPFPFNPNPMVcPFTFNPFPNPMVtcFP

Джошуа Грохов
источник
Спасибо за ваш обширный ответ. Я пытаюсь переварить это, и это было очень полезно до сих пор. Я полагаю, однако, вы имели в виду FP FNP и FP TFNP в последнем абзаце?
Оберон
1
@Auberon: Нет, последний абзац переводит между различными догадками. В нем говорится, что и т. Д.FNPFPNPMVcPF
Джошуа
@JoshuaGrochow или возможны или иерархия рушится? Также имеет место в или наоборот (кажется правдоподобным, так как в любом случае не имеет смысла)? NPPTFNPNPPUPPUPPTFNP
T ....
3

В дополнение к обширному ответу Джошуа, я хочу добавить следующие определения от Элейн Рух, ее автоматов, вычислимости и сложности .

Класс ФП : Бинарное отношение в тогда и только тогда существует детерминированный полиномиальный алгоритм времени , что, учитывая произвольный входной , можно найти таких , что .QFPxy(x,y)Q

Класс ФНП : Бинарное отношение в тогда и только тогда существует детерминированный полиномиальный время верификатор, задана произвольная входная пара , определяет , является ли . Эквивалентно, находится в если существует недетерминированный полиномиальный алгоритм времени, который при произвольном входе может найти некоторый такой, чтоQFNP(x,y)(x,y)QQFNPxy(x,y)Q

Из этих определений ясно, что . Она также кратко рассказывает о проблемах за пределами .Р Н РFPTFNPFNPFNP

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

Оберон
источник
После того, как я немного подумал над этим определением, я подозреваю, что два «эквивалентных» определения совсем не эквивалентны ...FNP
Auberon
Я думаю, чтобы получить эквивалентность, нужно предположить, что отношение p-ограничено (то есть существует такой многочлен , что если такое, что , то существует такое с ). Кроме того, нужно указать, что значит для «недетерминированного алгоритма найти », то есть, что означает для недетерминированного алгоритма «сделать вывод»? Это часть того, почему мне нравится семейство определений NPMV ...y ( x , y ) Q y | у | p ( | x | ) ypy(x,y)Qy|y|p(|x|)y
Джошуа Грохов