Алгоритм Гровера и его связь с классами сложности?

12

Я запутался в алгоритме Гровера и его связи с классами сложности.

Алгоритм Гровера находит и элемент в базе данных с (таким, что ) элементов с обращениями к оракулу.kN=2nf(k)=1

N=2n/2

Итак, у нас есть следующая проблема:

Проблема: Найти в базе данных так, чтобыkf(k)=1

Теперь я знаю, что это не проблема решения, и поэтому наши обычные определения класса сложности , т. Д. На самом деле не применяются. Но мне любопытно узнать, как мы будем определять класс сложности в таком случае - и будет ли это сделано в отношении или ?PNPNn

Кроме того, алгоритм Гровера может быть использован в качестве подпрограммы. Я читал в нескольких местах, что алгоритм Гровера не меняет класс сложности, это проблема - есть ли эвристический способ увидеть это.

Квантовая спагеттификация
источник
Попробуйте использовать \text{}для написания имен классов сложности. Например \text{NP}или\text{BQP}
Санчайан Датта
1
Я не уверен, что вы спрашиваете здесь. Алгоритмы не могут быть членами классов сложности, поскольку классы сложности содержат вычислительные задачи. Вы спрашиваете, содержится ли проблема, указанная в вопросе, в «известном» классе сложности или является полной для него? Вы спрашиваете, приводит ли «открытие» алгоритма Гровера к теореме о связи между известными классами сложности? Просьба уточнить.
Дискретная ящерица

Ответы:

6

Резюме

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

Сложность проблем отношений

Как вы заметили, проблема Гровера решает проблему поиска , которая в литературе о сложности иногда также называется проблемой отношений . То есть это проблема следующего вида:

Структура общей поисковой задачи.
Учитывая , вход и бинарное отношение , найти таких , что имеет место.xRyR(x,y)

Классы сложности FP и FNP определены в терминах таких задач, где, в частности, интересует случай, когда имеет длину не более чем полиномиальную функцию длины , и где отношение может само по себе вычисляться за время, ограниченное некоторым полиномом от длины .yxR(x,y)(x,y)

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

Неструктурированный поиск.
Имеется входной оракул такой, что для некоторой функции , найдите такой, что .O:H2m+1H2m+1O|a|b=|a|bf(a)f:{0,1}m{0,1}yO|y|0=|y|1

Здесь сам оракул является источником проблемы: он играет рольx , а отношение, которое мы вычисляем, равно

R(O,y)[O|y|0=|y|1][f(y)=1].

Предположим, что вместо оракула нам предоставляется конкретный вход который описывает, как должна вычисляться функция f , и мы можем затем рассмотреть, к какому классу сложности относится эта задача. Как видно , соответствующий класс сложности, который мы получаем, зависит от того, как предоставляется ввод.xfpyramids

  • Предположим, что функция ввода предоставляется в качестве базы данных (как иногда описывается проблема), где каждая запись в базе данных имеет некоторую длину . Если n - длина строки x, используемой для описания всей базы данных , то в базе данных есть N = n / записей. Затем можно провести исчерпывающий поиск по всей базе данных, запросив каждую из N записей по порядку, и остановиться, если мы найдем запись y такую, что f ( y ) = 1 . Предположим, что каждый запрос к базе данных занимает что-то вроде O (nxN=n/Nyf(y)=1 , эта процедура останавливается во времени O ( N log N ) O ( n log n ) , так что проблема вFP.O(logN)O(logn)O(NlogN)O(nlogn)

    Предполагая, что поиск в базе данных может быть выполнен в когерентной суперпозиции, алгоритм Гровера позволяет эту проблему в FBQP . Однако, поскольку FP  ⊆  FBQP , классический исчерпывающий поиск также доказывает, что эта проблема находится в FBQP . Все, что мы получаем (с учетом логарифмических коэффициентов), - это квадратичное ускорение благодаря экономии числа запросов к базе данных.

  • Предположим, что входная функция кратко описывается алгоритмом полиномиального времени, который принимает спецификацию и аргумент y { 0 , 1 } m и вычисляет O : H m + 1 2x{0,1}ny{0,1}mO:H2m+1H2m+1на нормативной основе состояние , где м может быть значительно больше , чем П ( журнал п ) . Примером может служить случай, когда x задает форму CNF некоторой булевой функции f : { 0 , 1 } m{ 0 , 1 } для m O ( n ) , и в этом случае мы можем эффективно оценить f ( y ) на входе y |y|bmΩ(logn)xf:{0,1}m{0,1}mO(n)f(y) и тем самым эффективно оценивать O на стандартных базовых состояниях. Это ставит проблему вFNP.y{0,1}mO

    Дана процедура оценки из ( x , y ) за время O ( p ( n ) ) для n = | х | Алгоритм Гровера решает проблему неструктурированного поиска O за время O ( p ( n ) √)f(y)(x,y)O(p(n))n=|x|OO(p(n)2m) O(p(n)2n)n

nxOxN=n/NnxONO(2n/2)O(N)

Сложность решения из проблем отношений

Существует простой способ получить решение проблем из отношений отношений, что хорошо известно из теории NP- неполных задач: превратить задачу поиска в вопрос о существовании действительного решения.


xRy:R(x,y)

R

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

Сложность Oracle

OxO

OnOnx

O
x=111n

  • y{0,1}n

  • y{0,1}n

O|y|0=|y|1

NPOFNPOBQPOFBQPO

O

Как видно из последнего случая, если мы будем рассматривать ввод только как оракула, ситуация выглядит немного не интуитивно понятной, и это, безусловно, делает невозможным говорить о способах реализации «базы данных». Но одно достоинство рассмотрения релятивизированной версии проблемы с реальным оракулом состоит в том, что мы можем доказать вещи, которые в противном случае мы понятия не имеем, как доказать. Если бы мы могли доказать, что версия решения краткой неструктурированной задачи поиска была в BQP , то мы бы достигли огромного прорыва в практических вычислениях; и если бы мы могли доказать, что проблема решения на самом деле не была в BQP , то мы бы показали, что P ≠ PSPACEOONPOBQPO

Ниль де Бодрап
источник
2

nmn

m2n/2m2n1

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

пирамиды
источник
« Физикам нравится апеллировать к предположению, что это все еще экспоненциальное ускорение без какого-либо известного » ... Вы хотели написать « все еще полиномиальное ускорение »?
GLS
Нет, это действительно экспоненциальное ускорение (просто недостаточно, чтобы превратить экспоненциальное время выполнения в неэкспоненциальное).
пирамиды
2

n

NP

f(x)x{0,1}nxf(x)=1pxmpoly(n)g(x,px)=1f(x)=1g(x,px)poly(n)

Позвольте мне привести несколько примеров (возможно, это то, что вы просили здесь ?):

  • f(x)xxf(x)g(x,px)=f(x)

  • f(x)xx=72px=(8,9)g(x,p)x

  • G1G2xf(x)pxG1G2g(x,px)pxG1G2

  • xf(x)pxg(x,px)

NPPP

PNPNPPPNP

NPxpxm=poly(n)g(x,px)=1O(2mpoly(m))g(x,px)=1pxO(2m/2poly(m)), Это значительно быстрее, но не меняет оценку того, является ли время выполнения полиномиальным или что-то хуже; он не стал алгоритмом полиномиального времени. Например, изоморфизм графов должен был бы искать по всем возможным перестановкам. Сапер должен будет искать все возможные назначения мин на открытых площадках.

Конечно, иногда дополнительная структура задачи допускает различные решения, которые не требуют поиска всех возможных доказательств. Там поиск Гровера бесполезен или даже бесполезен, но может случиться так, что мы можем придумать алгоритм полиномиального времени другим способом. Например, в случае составного тестирования: классически, поиск факторов числа кажется трудным: мы не можем сделать намного лучше, чем тестирование всех возможных факторов, поэтому использование этой формы доказательства не очень помогает, но Как уже упоминалось, этот вопрос может быть эффективно решен с помощью другого маршрута, тестирования первичности AKS.

DaftWullie
источник
Классы P и NP обычно определяются как классы языков или проблемы решения, например, в ответе на этот вопрос . Хотя они могут быть «закодированы» как функции с двоичным выводом, как вы делаете здесь, это немного нестандартно в теории сложности.
Дискретная ящерица
f(x)
Вы можете определять вещи по своему усмотрению, но я думаю, что полезно упомянуть, что это не является стандартным, например, когда читатели проверяют другие источники. Отсюда и комментарий.
Дискретная ящерица
-1

Забудьте о базе данных. Алгоритм Гровера решает проблему булевой удовлетворенности , а именно:

n10

Известно, что проблема является NP-полной.

kludg
источник
3
В том, что вы говорите, есть доля правды: почти всегда следует думать о оракуле как об оценке функции, а не о поиске в базе данных; и что если эта функция может быть оценена за полиномиальное время, то она фактически является экземпляром SAT, который действительно NP-завершен. Но учитывая, что ускорение от Гровера в большинстве случаев является квадратичным, не ясно, что NP-полнота SAT имеет отношение к тому, что фактически делает алгоритм Гровера.
Ниль де Бодрап,
2
Из-за невежественного или троллингового понижения я не собираюсь вносить свой вклад в этот форум.
августа
@kludg Я признаю, что один из голосов «за» принадлежит мне, поэтому позвольте мне объяснить; Ваш ответ без дальнейшего контекста или объяснения не отвечает ни на один из вопросов, которые я задал в ОП. Это делает интересный момент, но, насколько я знаю, это не относится к моим конкретным вопросам. Теперь я могу ошибаться в этом вопросе, и вы отвечаете, что на самом деле отвечаете на некоторые мои вопросы - если это так, я не верю, что на них дан какой-либо прямой ответ.
Квантовая спагеттификация