Резюме
- Существует теория сложности поисковых задач (также известная как проблемы отношений). Эта теория включает в себя классы, называемые FP , FNP и FBQP, которые эффективно решают задачи поиска с различными видами ресурсов.
- Из задач поиска вы также можете определить задачи решения, что позволяет связать задачи поиска с обычными классами P , NP и BQP .
- Независимо от того, рассматриваете ли вы поисковую версию решающей версии проблемы, то, как вы учитываете вклад в проблему неструктурированного поиска, определит, какие верхние границы вы можете установить для ее сложности.
Сложность проблем отношений
Как вы заметили, проблема Гровера решает проблему поиска , которая в литературе о сложности иногда также называется проблемой отношений . То есть это проблема следующего вида:
Структура общей поисковой задачи.
Учитывая , вход и бинарное отношение , найти таких , что имеет место.xRyR(x,y)
Классы сложности FP и FNP определены в терминах таких задач, где, в частности, интересует случай, когда имеет длину не более чем полиномиальную функцию длины , и где отношение может само по себе вычисляться за время, ограниченное некоторым полиномом от длины .yxR(x,y)(x,y)
В частности: пример проблемы «поиск в базе данных», к которой обычно применяется поиск Гровера, можно описать следующим образом.
Неструктурированный поиск.
Имеется входной оракул такой, что для некоторой функции , найдите такой, что .O:H⊗m+12→H⊗m+12O|a⟩|b⟩=|a⟩|b⊕f(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:Hm+12→Hm+12на нормативной основе состояние , где м может быть значительно больше , чем П ( журнал п ) . Примером может служить случай, когда x задает форму CNF некоторой булевой функции f : { 0 , 1 } m → { 0 , 1 } для m ∈ O ( n ) , и в этом случае мы можем эффективно оценить f ( y ) на входе y ∈|y⟩|b⟩mΩ(logn)xf:{0,1}m→{0,1}m∈O(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/ℓNnxON∈O(2n/2)O(N−−√)
Сложность решения из проблем отношений
Существует простой способ получить решение проблем из отношений отношений, что хорошо известно из теории NP- неполных задач: превратить задачу поиска в вопрос о существовании действительного решения.
xR∃y:R(x,y)
R
xx решение для неструктурированного поиска, которое делает это без фактического поиска решения, хотя в целом не ясно, как это сделать таким образом, чтобы обеспечить преимущество по сравнению с фактическим поиском решения.
Сложность Oracle
OxO
OnOnx
O
x=11⋯1n
y∈{0,1}n
y∈{0,1}n
O|y⟩|0⟩=|y⟩|1⟩
NPOFNPOBQPOFBQPO
O
Как видно из последнего случая, если мы будем рассматривать ввод только как оракула, ситуация выглядит немного не интуитивно понятной, и это, безусловно, делает невозможным говорить о способах реализации «базы данных». Но одно достоинство рассмотрения релятивизированной версии проблемы с реальным оракулом состоит в том, что мы можем доказать вещи, которые в противном случае мы понятия не имеем, как доказать. Если бы мы могли доказать, что версия решения краткой неструктурированной задачи поиска была в BQP , то мы бы достигли огромного прорыва в практических вычислениях; и если бы мы могли доказать, что проблема решения на самом деле не была в BQP , то мы бы показали, что P ≠ PSPACEOONPOBQPO
\text{}
для написания имен классов сложности. Например\text{NP}
или\text{BQP}