Быстрые квантовые алгоритмы
Квантовый алгоритм нахождения периода: основная идея.
Рассмотрим оператор умножения вычета на , действующий по правилу
. (Более корректное обозначение —
, однако число
не меняется на протяжении всего вычисления, поэтому мы опускаем его в индексах). Этот оператор переставляет базисные векторы при
(напомним, что
). Будем считать, что на остальных базисных векторах он действует тождественно,
при
.
Поскольку для умножения вычетов есть обычная булева схема полиномиального — — размера, то существует и квантовая схема примерно такого же размера (использующая напрокат дополнительные q-биты, как это объяснялось раньше).
Перестановка, которую задает оператор , разбивается на циклы. Цикл, содержащий
, содержит и
(после
итераций мы попадаем из
в
). Алгоритм, о котором пойдет речь, начинает с состояния
и применяет к нему оператор
по многу раз. Но за пределы орбиты
(цикла перестановки, которому принадлежит
) мы такими преобразованиями не выйдем. Поэтому рассмотрим ограничение оператора
на подпространство, порожденное орбитой
.
Собственные числа для
, где
— период.
Легко проверить, что написанные векторы действительно собственные. Достаточно заметить, что умножение на приводит к сдвигу индексов в сумме. Если заменить переменную суммирования, чтобы устранить этот сдвиг, получим множитель
.
Если бы мы могли измерять собственные числа оператора , то получали бы числа
. Сначала разберем, как это может нам помочь в нахождении периода.
Пусть у нас есть машина , которая при каждом запуске выдает нам число
, где
— искомый период, а
— равномерно распределенное на множестве
случайное число. Мы предполагаем, что
представлено в виде несократимой дроби
(если бы машина выдавала число в виде
, то вообще не было бы проблем).
Получив несколько дробей такого вида , можно с большой вероятностью найти число
, приводя эти дроби к общему знаменателю.
Лемма. Если получено дробей, то вероятность того, что наименьшее общее кратное их знаменателей отлично от
, меньше
.
Доказательство. Дроби получаются сокращением дробей
(т.е.
), где
— независимо распределенные случайные числа. Достаточно, чтобы эти числа были в совокупности взаимно просты, тогда наименьшее общее кратное
будет равно
.
Вероятность того, что имеют общий простой делитель
, не больше, чем
. Поэтому вероятность получить не
после приведения к общему знаменателю не превосходит
(эта сумма заведомо включает в себя все простые, меньшие
).
Теперь будем строить машину . Она должна содержать схему, измеряющую собственные числа оператора
для любого
(а не только для
— числа, для которого ищется период). Точнее говоря, нам нужен оператор
, если
. Как оператор
действует в остальных случаях, неважно. Его можно доопределить любым вычислительно тривиальным способом. На самом деле, все приведенные ранее рассуждения об имитации классических схем квантовыми сохраняют силу и для имитации схем, вычисляющих частично определенные функции.
Задача 12.2. Используя оператор , реализуйте оператор
для любого
, взаимно простого с
.
Обозначим (подпространство, порожденное
), тогда искомая схема должна реализовывать измеряющий оператор
с операторами
вида
, где
— некоторая несократимая дробь, а
— мусор. При этом для условных вероятностей должно выполняться неравенство



Построение такой измеряющей схемы довольно сложное, поэтому вначале объясним, как из нее строится машина . Возьмем состояние
в качестве начального. Прямое вычисление (читателю рекомендуется его проделать) показывает, что


Вероятности всех равны:
, а указанное выше свойство условных вероятностей гарантирует нам, что с вероятностью
будет получаться
,. Как будет видно в дальнейшем, при построении
можно сделать величину
сколь угодно малой.
Условно работу машины можно представить в виде такого процесса:
(Cлучайный выбор происходит сам по себе, без применения какого бы то ни было оператора. Просто формула полной вероятности устроена так, как будто до начала измерения генерируется случайное
, которое затем остается постоянным. Разумеется, формула условной вероятности верна только тогда, когда оператор
является измеряющим для заданных подпространств
).