Почему оракуловый кубит необходим в алгоритме Гровера?


10

Меня немного смущает необходимость оракула в алгоритме Гровера.

Мой вопрос: зависит ли от того, как вы реализуете свой оракул, нужен ли вам оракул-кубит или нет? Или это какая-то причина для оракула? (например, существуют некоторые проблемы, которые невозможно решить без оракула-кубита, или проще думать о проблеме с оракулом-кубитом, или это соглашение и т. д.)

Многие ресурсы представляют алгоритм Гровера с оракулом, но я обнаружил, что в некоторых случаях вам не нужен оракул-кубит.

Например, вот две реализации алгоритма Гровера в симуляторе IBM Q. Один использует оракуловый кубит, а другой нет. В обоих случаях я хотел бы найти | 11> из пространства | 00>, | 01>, | 10> и | 11>. В обоих случаях оракул успешно переворачивает | 11> на - | 11>.

・ С оракулом кубитом ( ссылка на симулятор IBM Q ) введите описание изображения здесь

・ Без оракула ( ссылка на симулятор IBM Q ) введите описание изображения здесь

Ответы:


5

С точки зрения определения квантовой цепи оракуловый кубит не является строго необходимым. Например, в поиске Гровера вы обычно можете определить действие оракула как где возвращает 1, если отмеченный элемент. Однако мы всегда используем это особым образом, вводя в кубе оракула. Это имеет чистый эффект от реализации фазы для помеченного элемента. Другими словами, это полностью эквивалентно реализации новой унитарной

U|x|y=|x|yf(x),
f(x)x(|0|1)/2
U~|x=(1)f(x)|x

Однако, где это имеет значение - это практическая реальность. Для поиска элемента нам фактически потребуется какая-то схема, которая распознает помеченный элемент на основе ввода . В этот момент гораздо проще подумать о выводе ответа на бит оракула, чем каким-то образом напрямую построить унитарную систему, которая дает фазу, без использования оракула-кубита. На самом деле, я подозреваю, что если бы я попросил вас разработать общую версию , вы бы предложили с дополнительным кубитом в качестве решения.xU~U


На самом деле очень легко избежать лишнего кубита, если он не используется в качестве рабочего пространства во время вычисления оракула. Найдите любые CNOT на дополнительный кубит и замените их Z-воротами на управление CNOT. Аналогичным образом замените CCNOT на дополнительный кубит CZ между двумя элементами управления CCNOT. И т.д.
Крейг Гидни

@CraigGidney Это справедливо, хотя я думаю, что в ваше утверждение встроено больше допущений (что делает его необщим, даже если большинство случаев, о которых мы знаем, их удовлетворяют): (1) не должно быть промежуточных вспомогательных элементов, используемых во время оценка функции; (2) схема оракула должна быть разложена на набор шлюзов, где единственные многоквитовые ворота, действующие на оракуловый кубит, являются (множественными) неконтролируемыми не-узлами, которые нацелены на оракуловый кубит; (3) никакие другие врата не могут воздействовать на оракула-кубита (то есть вы не можете просто изменить c-nots, действуя неправильно, используя Адамара на входах и выходах).
DaftWullie

Это правильно.
Крейг Гидни
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.