Московский государственный университет имени М.В.Ломоносова
Опубликован: 15.03.2007 | Доступ: свободный | Студентов: 613 / 27 | Оценка: 5.00 / 4.50 | Длительность: 19:30:00
Специальности: Программист
Лекция 12:

Быстрые квантовые алгоритмы

Квантовый алгоритм нахождения периода: основная идея.

Рассмотрим оператор умножения вычета на a, действующий по правилу U_a\colon \ket{x}\mapsto \ket{ax\bmod q}. (Более корректное обозначение — U_{q,a}, однако число q не меняется на протяжении всего вычисления, поэтому мы опускаем его в индексах). Этот оператор переставляет базисные векторы при 0\leq x <q (напомним, что (a,q)=1 ). Будем считать, что на остальных базисных векторах он действует тождественно, U_a\colon \ket{x}\mapsto \ket{x} при x\geq q.

Поскольку для умножения вычетов есть обычная булева схема полиномиального — O(n^2) — размера, то существует и квантовая схема примерно такого же размера (использующая напрокат дополнительные q-биты, как это объяснялось раньше).

Перестановка, которую задает оператор U_a, разбивается на циклы. Цикл, содержащий a, содержит и 1 (после \per_q(a)-1 итераций мы попадаем из a в 1 ). Алгоритм, о котором пойдет речь, начинает с состояния \ket1 и применяет к нему оператор U_a по многу раз. Но за пределы орбиты a (цикла перестановки, которому принадлежит a ) мы такими преобразованиями не выйдем. Поэтому рассмотрим ограничение оператора U_a на подпространство, порожденное орбитой a.

Собственные числа для U_a \lambda_k= e^{2\pi\ii\cdot k/t}, где t — период.

Собственные векторы для U_a \displaystyle \ket{\xi_{a,k}}=\frac{1}{\sqrt{t}} \sum\limits_{m=0}\limits^{t-1} e^{-2\pi\ii\cdot km/t}\ket{a^m}.

Легко проверить, что написанные векторы действительно собственные. Достаточно заметить, что умножение на a приводит к сдвигу индексов в сумме. Если заменить переменную суммирования, чтобы устранить этот сдвиг, получим множитель e^{2\pi\ii\cdot k/t}.

Если бы мы могли измерять собственные числа оператора U_a, то получали бы числа k/t. Сначала разберем, как это может нам помочь в нахождении периода.

Пусть у нас есть машина M, которая при каждом запуске выдает нам число k/t, где t — искомый период, а k — равномерно распределенное на множестве \{0,\dots,t-1\} случайное число. Мы предполагаем, что k/t представлено в виде несократимой дроби k'/t' (если бы машина выдавала число в виде k/t, то вообще не было бы проблем).

Получив несколько дробей такого вида k_1'/t_1',\,k_2'/t_2',\dots,k_l'/t_l', можно с большой вероятностью найти число t, приводя эти дроби к общему знаменателю.

Лемма. Если получено l дробей, то вероятность того, что наименьшее общее кратное их знаменателей отлично от t, меньше 3\cdot2^{-l}.

Доказательство. Дроби k_1'/t_1',\dots,k_l'/t_l' получаются сокращением дробей k_1/t,\dots,k_l/t (т.е. k_j'/t_j'=k_j/t ), где k_1,\dots,k_l — независимо распределенные случайные числа. Достаточно, чтобы эти числа были в совокупности взаимно просты, тогда наименьшее общее кратное t_1',\dots,t_l' будет равно t.

Вероятность того, что k_1,\dots,k_l имеют общий простой делитель p, не больше, чем 1/p^l. Поэтому вероятность получить не t после приведения к общему знаменателю не превосходит \displaystyle \sum\limits_{k=2}\limits^{\infty} \frac{1}{k^l} <3\cdot2^{-l} (эта сумма заведомо включает в себя все простые, меньшие t ).

Теперь будем строить машину M. Она должна содержать схему, измеряющую собственные числа оператора U_b для любого b (а не только для b=a — числа, для которого ищется период). Точнее говоря, нам нужен оператор U\colon \ket{b,x}\mapsto \ket{b,bx\bmod q}, если (b,q)=1. Как оператор U действует в остальных случаях, неважно. Его можно доопределить любым вычислительно тривиальным способом. На самом деле, все приведенные ранее рассуждения об имитации классических схем квантовыми сохраняют силу и для имитации схем, вычисляющих частично определенные функции.

Задача 12.2. Используя оператор U, реализуйте оператор \Lambda(U_b) для любого b, взаимно простого с q.

Обозначим \calL_{a,k}=\CC(\ket{\xi_{a,k}}) (подпространство, порожденное \ket{\xi_{a,k}} ), тогда искомая схема должна реализовывать измеряющий оператор W=\sum\limits_{k=0}^{t-1}V_{a,k}\otimes\Pi_{\calL_{a,k}} с операторами V_{a,k} вида \ket{0}\mapsto\sum_{y,z}c_{y,z}\ket{y,z}, где y — некоторая несократимая дробь, а z — мусор. При этом для условных вероятностей должно выполняться неравенство

\PP\left(\left.\irr{k}{t}\hskip0.15em\right|k\right)\ \bydef\ \sum_{z}\left|\left\langle\irr{k}{t}\hskip0.15em,z\,\Bigl|V_{a,k} \Bigr|0\right\rangle \right|^2\ \ge\ 1-\eps,
где \,\irr{k}{t}\, обозначает несократимую дробь, представляющую рациональное число \slashfrac{k}{t}.

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

\ket1= \frac{1}{\sqrt{t}}\sum_{k=0}^{t-1}\ket{\xi_k}.
Это равенство гарантирует равномерное распределение числителей дробей. Проведем измерение в этом состоянии, тогда по формуле полной вероятности получаем
\PP\Bigl(W(\ket0\otimes\ket1),y\Bigr) = \sum_{k}^{}\PP(y\big| k)\, \PP(\ket1, \calL_k).

Вероятности всех \ket{\xi_k} равны: \PP(\ket{1},\calL_k)=\left| \langle \xi_k|1\rangle \right|^2=\slashfrac1t, а указанное выше свойство условных вероятностей гарантирует нам, что с вероятностью 1-\eps будет получаться \irr{k}{t}\,. Как будет видно в дальнейшем, при построении W можно сделать величину \eps сколь угодно малой.

Условно работу машины M можно представить в виде такого процесса:

(Cлучайный выбор k происходит сам по себе, без применения какого бы то ни было оператора. Просто формула полной вероятности устроена так, как будто до начала измерения генерируется случайное k, которое затем остается постоянным. Разумеется, формула условной вероятности верна только тогда, когда оператор W является измеряющим для заданных подпространств \calL_{a,k} ).