В этом ответе объясняется алгоритм Гровера. Объяснение указывает, что алгоритм в значительной степени опирается на оператор диффузии Гровера , но не дает подробных сведений о внутренней работе этого оператора.
Вкратце, оператор диффузии Гровера создает «инверсию относительно среднего», чтобы итеративно сделать крошечные различия на ранних этапах достаточно большими, чтобы их можно было измерить.
Вопросы сейчас:
- Как диффузионный оператор Гровера достигает этого?
- Почему в результате в общем времени поиска неупорядоченной базы данных оптимально?
algorithm
grovers-algorithm
Дискретная ящерица
источник
источник
Ответы:
Мы начнем с начального состояния, которое является равномерной суперпозицией всех состояний, и мы стремимся найти состояние которое можно распознать как правильный ответ (при условии, что существует только одно такое состояние, хотя это можно обобщить). Для этого мы эволюционируем во времени под действием гамильтониана Действительно прекрасная особенность поиска Гровера заключается в том, что на этом этапе мы можем свести математику к подпространству всего из двух состояний , вместо того, чтобы требовать все . Проще описать, если мы сделаем ортонормированный базис из этих состояний, где | х⟩H=| х⟩⟨х| +| г |⟩⟨г || , {| х⟩,| г |⟩}2п{| х⟩,| г |⊥⟩}| г |⊥⟩=1
Одно предостережение заключается в следующем: вы можете переопределить и развиваться, используя и время эволюции будет в 5 раз короче. Если вы хотите быть действительно радикальным, замените 5 на , и поиск Гровера будет выполняться в постоянное время! Но вы не можете делать это произвольно. Любой данный эксперимент будет иметь фиксированную максимальную силу сцепления (то есть фиксированный множитель). Итак, разные эксперименты имеют разное время выполнения, но их масштабирование одинаково, . Это все равно, что сказать, что стоимость затвора в модели схемы постоянна, а не предполагать, что если мы используем схему глубины каждый затвор может быть запущен за время .H~=5H H~ 2n/2 2n/2 k 1/k
Доказательство оптимальности по существу включает в себя показ того, что если вы сделаете обнаружение одного возможного отмеченного состояния быстрее, это сделает обнаружение другого отмеченного состояния, , более медленным. Поскольку алгоритм должен работать одинаково хорошо независимо от состояния, это решение является лучшим.|x⟩ |y⟩
источник
Один из способов определения оператора диффузии: 1 , где - фазовый оракулD=−H⊗nU0H⊗n U0
Это показывает, что также можно записать как, давая где .U0 U0=I−2|0⊗n⟩⟨0⊗n|
Запись состояния где ортогонально (то есть дает то, что .|ψ⟩=α|+⟩+β∣∣+⊥⟩ ∣∣+⊥⟩ |+⟩ ⟨+⊥∣+⟩=0) D|ψ⟩=α|+⟩−β∣∣+⊥⟩
Это дает 2, что диффузионный оператор является отражением о|+⟩
Поскольку другая часть алгоритма Гровера также является отражением, они объединяются для поворота текущего состояния ближе к значению . Этот угол уменьшается линейно с числом оборотов (пока он не выходит за пределы искомого значения), давая, что вероятность правильного измерения правильного значения увеличивается квадратично.x0
Беннет и др. и др. показал, что это оптимально. Принимая классическое решение NP-проблемы, алгоритм Гровера может быть использован для квадратичного ускорения этого процесса. Однако, взяв язык для сохраняющей длину функции (здесь - оракул), любой ограниченный Квантовая машина Тьюринга, основанная на ошибке оракула, не может принять этот язык за время .LA={y:∃xA(x)=y} A T(n)=o(2n/2)
Это достигается с помощью набора оракулов, где не имеет обратного (поэтому не содержится в языке). Тем не менее, это содержится в некотором новом языке по определению. Разница в вероятностях того, что машина принимает а другая машина принимает за время , тогда меньше и поэтому ни один язык не принят, и алгоритм Гровера действительно асимптотически оптимально. 3|1⟩⊗n LAy LA LAy T(n) 1/3
Позже Залка показала, что алгоритм Гровера является абсолютно оптимальным.
1 В алгоритме Гровера знаки минус можно перемещать, поэтому, где знак минус, является несколько произвольным и не обязательно должен быть в определении оператора диффузии
В качестве альтернативы, определение оператора диффузии без знака минус дает представление о∣∣+⊥⟩
3 Определение машины, использующей оракула качестве и машины, использующей оракула качестве , это связано с тем, что существует набор битовых строк, где состояния и в момент времени равны -close 4 , с мощностью . Каждый оракул, в котором правильно решает, находится ли в может быть сопоставлен с оракулами, где терпит неудачуA MA Ay MAy S MA MAy t ϵ <2T2/ϵ2 MA |1⟩⊗n LA 2n−Card(S) MA правильно решить, если на языке этого оракула. Тем не менее, он должен дать один из потенциальных ответов, и поэтому, если , машина не сможет определить членство .|1⟩⊗n 2n−1 T(n)=o(2n/2) LA
4 Используя евклидово расстояние, вдвое больше трассы
источник