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

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

Построение измеряющего оператора.

Теперь будем строить оператор, измеряющий собственные числа U_a. Как уже было сказано, можно ограничиться изучением действия этого оператора на вход \ket{\xi_{a,k}}. Построение разделяется на три этапа.

  1. Ищем информацию о \lambda_k=e^{2\pi\ii\varphi_k}, где
    \varphi_k=\frac{k}{t}\bmod1
    .
  2. Локализуем значение \ph с небольшой точностью. Самое время подчеркнуть, что во всех приводимых рассуждениях есть два параметра: вероятность ошибки \eps и точность \delta. Мы получаем некоторое число z как результат измерения, при этом должно выполняться условие \Prob[|z-\ph_k|>\delta]\le\eps. Пока нас устроит небольшая точность, скажем, \delta=1/8
  3. Далее нужно увеличить точность. Необходимо уметь отличать друг от друга числа вида \ph=\slashfrac{k}t, где 0\le k<t<2^n. Заметим, что если \slashfrac{k_1}{t_1}\ne\slashfrac{k_2}{t_2}, то \left|\slashfrac{k_1}{t_1}-\slashfrac{k_2}{t_2}\right|\ge\slashfrac{1}{t_1t_2} >\slashfrac{1}{2^{2n}}. Поэтому, зная значение \ph_k=\slashfrac{k}{t} с точностью \slashfrac1{2^{2n+1}}, мы можем определить его абсолютно точно (в виде несократимой дроби). Чтобы сделать это эффективно (за полиномиальное время), можно использовать алгоритм цепных дробей.
Как получать информацию о собственном числе.

В "Измеряющие операторы" был введен оператор \Xi(U_a)\double=(H\otimes I)\Lambda(U_a)(H\otimes I), измеряющий собственные числа. В нашем случае \lambda_k=e^{2\pi\ii\ph_k}, поэтому можно записать этот оператор в виде

\Xi(U_a) =\sum\limits_{k}^{} V_{a,k}\otimes\Pi_{\calL_{a,k}},\quad V_{a,k}=\frac{1}{2} \begin{pmatrix} 1+e^{2\pi\ii\ph_k}&1-e^{2\pi\ii\ph_k}\\1-e^{2\pi\ii\ph_k}&1+e^{2\pi\ii\ph_k} \end{pmatrix},
а его действие в виде
\ket{0}\otimes\ket{\xi_k}\ \stackrel{\Xi(U_a)}{\longmapsto}\ \left( \frac{1+e^{2\pi\ii\ph_k}}{2}\ket{0}+ \frac{1-e^{2\pi\ii\ph_k}}{2}\ket{1} \right) \otimes \ket{\xi_k},
так что для условных вероятностей получаем выражение
\PP(0\big| k)=\left|\frac{1+e^{2\pi\ii\ph_k}}{2}\right|^2 =\frac{1+\cos(2\pi\ph_k)}{2}.

Нам потребуется еще оператор \Xi(\ii U_a). Его также нетрудно реализовать. Реализация, изображенная на рисунке, использует оператор K\double=\begin{pmatrix} 1&0\\0&\ii\end{pmatrix} из стандартного базиса. Обведенный фрагмент реализует оператор \Lambda(\ii U_a). Действительно, K умножает на \ii только \ket1, но как раз в этом случае применяется оператор U_a (по определению оператора \Lambda(U_a) ). Для оператора \Xi(\ii U_a) условные вероятности равны

\PP(0\big| k)=\frac{1-\sin(2\pi\ph_k)}{2}.


Сложность реализации операторов \Xi(U_a) и \Xi(\ii U_a) зависит от сложности реализации оператора \Lambda(U_a), которая ненамного выше сложности реализации оператора U_a (см. задачу 12.2).

Оценка условных вероятностей.

Мы будем локализовывать значение \ph_k, оценивая условные вероятности, приведенные выше. Для получения такой оценки будем применять операторы \Xi(U_a) и \Xi(\ii U_a) к различным "приборам" (дополнительным q-битам). Рассуждения одинаковы для обоих операторов, поэтому ограничимся случаем \Xi(U_a).

У нас есть квантовый регистр A, в котором находится \ket{\xi_{a,k}}. (На самом деле там вначале был

\ket1=\frac{1}{\sqrt{t}}\sum_{k=0}^{t-1}\ket{\xi_k},
но мы рассматриваем \ket{\xi_{a,k}} по отдельности; это корректно в силу вида измеряющего оператора). Заведем большое количество ( s штук) вспомогательных регистров длиной в 1 бит. Каждый из этих регистров будет использоваться для применения оператора \Xi(U_a).

Как было доказано в "Измеряющие операторы" , условные вероятности в таком случае перемножаются. Для оператора

\prod\limits_{r=1}^s \Xi(U_a)[r,A]
условные вероятности будут равны \PP(y_1,\dots, y_s\big| k)=\prod\limits_{r=1}^{s} \PP(y_r\big| k) (здесь через y_r обозначено значение в r -ом бите).

Далее с битами, в которых записаны результаты "экспериментов", будут уже производиться классические действия. Поскольку условные вероятности перемножаются, можно считать, что мы оцениваем вероятность выпадения 1 в серии испытаний Бернулли.

Если монета брошена s раз, то доля выпавших единиц (\sum y_r)/s примерно равна \PP(1\big| k). С какой точностью верна такая оценка? Из теории вероятностей известно, что

\Prob\left[\left|\frac{\sum\nolimits_{r=1}^{s}y_r}{s}-\PP(1\big|k)\right| >\delta\right]<2e^{-c\delta^{2}s},
где c>0 — некоторая константа. Это показывает, что при любом фиксированном \delta можно добиться вероятности ошибки \eps за O(\log(1/\eps)) испытаний.

Итак, мы научились находить с некоторой точностью \delta синус и косинус от \ph_k. Теперь подберем \delta таким, чтобы значение \ph_k можно было установить по значениям синуса и косинуса с точностью 1/8. На этом второй этап завершен.