Быстрые квантовые алгоритмы
Единственное нетривиальное использование квантовых свойств для вычислений, которое мы уже рассмотрели, — это решение универсальной переборной задачи алгоритмом Гровера, изложенным в
"Определение квантового вычисления. Примеры"
. К сожалению, при этом достигается лишь полиномиальное ускорение. Поэтому никаких серьезных следствий для теории сложности вычислений (типа ) алгоритм Гровера не дает. В настоящее время нет доказательства того, что квантовые вычисления превосходят по скорости классические вероятностные. Но есть косвенные свидетельства в пользу такого утверждения. Первое из них — пример задачи с оракулом (т.е. процедурой типа "черного ящика"), для которой существует полиномиальный квантовый алгоритм, в то время как любой классический вероятностный алгоритм экспоненциален1Следует иметь в виду, что сложность задач с оракулом часто отличается от сложности обычных вычислительных задач. Классический пример — теорема о том, что
[36, 37]. Оракульный аналог этого утверждения неверен [30]!
. Этот пример, построенный Д. Саймоном [42], называется задачей о скрытой подгруппе в
. В дальнейшем мы решим также задачу о скрытой подгруппе в
, обобщающую все результаты из этого раздела.
Задача о скрытой подгруппе. Пусть — конечная группа, причем задано некоторое представление элементов
двоичными словами. Имеется устройство ( оракул ), вычисляющее функцию
со следующим свойством:
![]() |
( 12.1) |
![D\subseteq G](/sites/default/files/tex_cache/2e45344d5b8f87e3b0396cff288113bc.png)
Задача о скрытой подгруппе в .
Мы рассмотрим сформулированную выше задачу в случае . Элементы этой группы
можно представлять строками длины из нулей и единиц; групповая операция — побитовое сложение по модулю 2.
Легко доказать, что нельзя быстро найти "скрытую подгруппу" на классической вероятностной машине. (Классическая машина посылает на вход "черного ящика" строки и получает ответы
. Каждый следующий вопрос
зависит от предыдущих ответов
и некоторого случайного числа
.)
Утверждение 12.1. Пусть . Для любого классического вероятностного алгоритма, делающего не более
обращений к оракулу, существует подгруппа
и соответствующая функция
, для которой алгоритм ошибается с вероятностью
.
Доказательство. Для одной и той же подгруппы существует несколько различных оракулов
. Мы будем считать, что один из них выбирается случайно и равновероятно. (Если алгоритм ошибается с вероятностью
при случайном оракуле, то он также будет ошибаться с вероятностью
при каком-нибудь конкретном оракуле.) Случайный оракул обладает следующим свойством: если очередной ответ
не совпадает ни с одним из предыдущих ответов
, то он равномерно распределен на множестве
. Таким образом, случайный оракул эквивалентен устройству с памятью, которое на вопрос
выдает наименьшее число
, такое что
. Классическую машину можно изменить таким образом, что она сама будет производить случайный выбор
, когда
.
Пусть число вопросов к оракулу равно . Без уменьшения общности все вопросы различны. В случае
все ответы также различны, то есть
для всех
. Теперь рассмотрим случай
, где
выбирается случайно с равномерным распределением на множестве всех ненулевых элементов группы
. Тогда, независимо от используемого алгоритма,
c вероятностью
. С вероятностью
это имеет место для всех
. Напомним, что у нас есть два случайных параметра:
и
. Мы можем зафиксировать
таким образом, чтобы вероятность получения ответов
(для всех
) по-прежнему была больше
. Посмотрим, что будет делать классическая машина в этом случае. Если она выдает ответ "
" с вероятностью
, положим
— тогда выдаваемый ответ будет неверным с вероятностью
. Если же вероятность ответа "
" меньше
, положим
.
Теперь определим квантовый аналог описанного выше устройства. Соответствующий квантовый оракул — это унитарный оператор
![]() |
( 12.2) |
![\oplus](/sites/default/files/tex_cache/61a41642d26f221806dcbccfcebc2ef8.png)
Пусть , а
— группа характеров на
, т.е. гомоморфизмов
. В случае
группу
можно охарактеризовать следующим образом:
![E^*= \{h \in(\ZZ_2)^k: \forall\, z\in(\ZZ_2)^k\: (h\cdot z=0) \},](/sites/default/files/tex_cache/166be3579b456652e5617973fd1656e9.png)
![h\cdot z](/sites/default/files/tex_cache/59c2f5b6e3a4d01fcff2882fbc3b57cf.png)
![h](/sites/default/files/tex_cache/2510c39011c5be704182423e3a695e91.png)
![z\mapsto(-1)^{h\cdot z}](/sites/default/files/tex_cache/0085a3e3a110027225ed33289cfdc3b4.png)
![h\in E^*](/sites/default/files/tex_cache/113717770e99b4d2948e4cb153202919.png)
![U](/sites/default/files/tex_cache/4c614360da93c0a041b22e537de151eb.png)
![E^*](/sites/default/files/tex_cache/9783bc31459ae746f9486a66b8b5783d.png)
Начнем с того, что приготовим состояние в одном квантовом регистре. Во второй регистр поместим состояние
и применим оператор
. Затем выбросим второй регистр, т.е. не будем его больше использовать. Получится смешанное состояние
![\rho \,=\, \Tr_2\Bigl(U(\ket{\xi}\bra{\xi}\otimes\ket{0^n}\bra{0^n})U^\dagger \Bigr)\,=\, 2^{-k}\,\sum_{x,y:x-y\in D}\ket{x}\bra{y}.](/sites/default/files/tex_cache/571bd718a53cd76191c44ac22f7d99b6.png)
![H^{\otimes k}](/sites/default/files/tex_cache/0ef0e96e823177f1c1027ea33cd25ecd.png)
![\gamma \,=\, H^{\otimes k}\rho H^{\otimes k} \,=\, 2^{-2k} \sum_{a,b}\sum_{x,y:x-y\in D} (-1)^{a\cdot x-b\cdot y}\ket{a}\bra{b}.](/sites/default/files/tex_cache/288b7bae2d7173b2f12459745351f5a7.png)
![\sum\limits_{x,y:x-y\in D}(-1)^{a\cdot x-b\cdot y}](/sites/default/files/tex_cache/66641e07a85a6b9f920d6833ca001c37.png)
![a=b\in E^*](/sites/default/files/tex_cache/8aa2c60b61729fa36d8b1641b7102101.png)
![\gamma = \frac{1}{|E^*|} \sum_{a\in Е^*} \ket{a}\bra{a}.](/sites/default/files/tex_cache/3304decea6d61b674ca8336f20f60f25.png)
![E^*](/sites/default/files/tex_cache/9783bc31459ae746f9486a66b8b5783d.png)
Задача 12.1. Пусть — независимые случайные равномерно распределенные элементы абелевой группы
. Докажите, что они порождают всю группу
c
вероятностью
.
Таким образом, достаточно случайных элементов, чтобы породить всю группу
с вероятностью ошибки
. (Такая маленькая вероятность ошибки получается без особых затрат по сравнению с
. Чтобы сделать ее еще меньше, эффективнее всего воспользоваться стандартной процедурой: повторить все вычисление несколько раз и выбрать наиболее часто встречающийся ответ).
Подведем итог: для нахождения "скрытой подгруппы" требуется
обращений к квантовому оракулу. В целом алгоритм имеет сложность
.