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

Определение квантового вычисления. Примеры

< Лекция 7 || Лекция 8: 123 || Лекция 9 >

Квантовый поиск: алгоритм Гровера.

Итак, мы имеем определение квантового вычисления. Теперь можно заняться сравнением эффективности классического и квантового вычисления. Во введении упоминались три основных примера, для которых квантовое вычисление оказывается, по-видимому, эффективнее классического. Мы начнем с того из них, в котором квантовое вычисление заведомо эффективнее (хотя ускорение лишь "полиномиальное").

Дадим определение универсальной переборной задачи в классической и квантовой постановке.

Пусть имеется устройство (см. рисунок), которое по входам x и y определяет значение некоторого предиката \calA(x,y). Нас интересует предикат F(x)\double=\exists\, y\:\calA(x,y). Это похоже на определение класса NP, но сейчас нам недоступна внутренняя структура устройства, вычисляющего предикат \calA. В таких условиях на классическом компьютере значение предиката F(x) нельзя вычислить быстрее, чем за N=2^n шагов, где n — количество битов в записи y.


Оказывается, что на квантовом компьютере можно вычислить значение предиката F(x) и даже найти y, на котором выполнено \calA(x,y), за время O(\sqrt{N}). Получены также и нижние оценки, показывающие, что в этой постановке квантовые устройства дают лишь полиномиальное ускорение по сравнению с классическими.


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

U_x|y\rangle= \left\{ \begin{array}{rl} |y\rangle, \quad & \mbox{если}\ \calA(x,y)=0, \\ -|y\rangle, \quad & \mbox{если}\ \calA(x,y)=1.  \end{array} \right.

Нужно вычислить значение F(x) и найти "ответ" y (при котором выполнен \calA(x,y) ).

Результаты, о которых уже упоминалось, формулируются так (см.[31, 48]): существуют две константы C_1 и C_2 такие, что есть схема размера \leq C_1\sqrt{N}, решающая задачу для любого предиката \calA(x,y) ; а для любой схемы размера \leq C_2\sqrt{N} существует предикат \calA(x,y), при котором задача не решается на этой схеме (т.е. схема дает неправильный ответ с вероятностью >1/3 ).

Мы разберем упрощенную постановку: считаем, что "ответ" существует и единствен, обозначим его через y_0 ; нужно найти y_0. Схема, которую мы для этого построим, будет примером "прямого" квантового вычисления; она будет описана в терминах преобразований базисных векторов.

Рассмотрим два оператора:

&U=I-2\ket{y_0}\bra{y_0}

и

&V=I-2\ket{\xi}\bra{\xi}, \quad\mathrm{где}\ \ket{\xi}=\frac{1}{\sqrt{N}}\sum_{y}^{}\ket{y}.

Оператор V в матричной форме может быть записан так (напомним, что N=2^n ):

V=\begin{pmatrix} 1-\frac{2}{N}&\dots&-\frac{2}{N}\\ \vdots&\ddots&\vdots\\ -\frac{2}{N}&\dots&1-\frac{2}{N} \end{pmatrix}.

Оператор U нам задан (это оракул). Построим квантовую схему, вычисляющую V. Действовать будем так: переведем \ket{\xi} в \ket{0^n} некоторым оператором W, затем применим оператор Y=I-2\ket{0^n}\bra{0^n}, после чего применим W^{-1}.

Построить оператор W, который переводит \ket{\xi} в \ket{0^n}, просто. Это W=H^{\otimes n}, где оператор H — из стандартного базиса (см. "Базисы для квантовых схем" ). Действительно, \ket\xi=\frac{1}{\sqrt{2^n}}\left(\ket0+\ket1\right)^{\otimes n}, \text{ а } H\colon \frac{1}{\sqrt2}\left(\ket0+\ket1\right)\mapsto\ket0.

Теперь построим реализацию оператора Y. Используем обратимую классическую схему, реализующую оператор Z\colon\cb^{n+1}\to\cb^{n+1},

\begin{align*} Z\ket{a_0,\dots,a_n}&\ =\ \ket{a_0\oplus f(a_1,a_2,\dots,a_n),a_1,\dots,a_n}; \\ f(a_1,\dots,a_n)&\ =\ \left\{ \begin{array}{rl} 1,\  & \mbox{если}\ a_1=\ldots=a_n=0,\\ 0,\ & \mbox{если}\ \exists\, j: a_j\ne0.  \end{array} \right. \end{align*}
(С точностью до перестановки аргументов, Z=\widehat{f_{\oplus}}.) Поскольку f имеет малую схемную сложность (в классическом смысле), по лемме для вычисления Z существует небольшая схема (в которой берутся "напрокат" дополнительные q-биты).

Схема, реализующая оператор V, изображена на рис. рис. 8.1.. Центральная часть, включающая в себя Z, \sz и Z, реализует оператор Y. В схеме используется оператор \sz=K^2 ( K из стандартного базиса).


Рис. 8.1.

Заметим, что W^2 и Z^2 действуют тождественно на векторах с нулевыми значениями q-битов, взятых напрокат. Поэтому решающую роль играет оператор \sz, действующий на вспомогательный q-бит, который также не меняется после всего вычисления.

Пусть вас не смущает то, что \sz действует только на "управляемый" q-бит, а меняется в результате весь вектор. Вообще, различие между "чтением" и "записью" в квантовом случае неабсолютно и зависит от выбора базиса. Приведем соответствующий пример.

Напишем матрицу \Lambda(\sx)\colon{} \ket{a,b}\mapsto \ket{a,a\oplus b} в базисе \frac{1}{\sqrt2}\left(\ket0\pm\ket1\right) для каждого из q-бит. Другими словами, запишем матрицу для оператора X=\left(H\otimes H\right)\, \Lambda(\sx)\, \left(H\otimes H\right). Схема для этого оператора изображена на рис. рис. 8.2. Используя равенство \Lambda(\sx)\ket{c,d}\double=\ket{c,c\oplus d}, найдем действие X на базисном векторе:

\begin{align*} X\ket{a,b}&=\frac{1}{2}\left(H\otimes  H\right) \Lambda(\sx)\sum\limits_{c,d}^{}(-1)^{ac+bd}\ket{c,d}=\\  &=\frac{1}{2}\left(H\otimes H\right) \sum\limits_{c,d}^{}(-1)^{ac+bd}\ket{c,c\oplus d}=\\ &=\frac{1}{4} \sum\limits_{a',b',c,d}^{}(-1)^{a'c+b'(c+d)} (-1)^{ac+bd}\ket{a',b'}=\\ &=\frac{1}{4}\sum_{a',b'}^{} 2\delta_{b,b'}\cdot2\delta_{a,(a'+b')} \ket{a',b'}=\ket{a\oplus b,b}. \end{align*}
Итак, в базисе
\frac{1}{\sqrt2}\left(\ket0\pm\ket1\right)
управляющий и управляемый биты поменялись местами. Какой бит "управляющий", или какой "читается", зависит от выбора базиса. Разумеется, такое положение дел противоречит нашей классической интуиции. Трудно представить, как при переходе к другому базису квантовый принтер вдруг становится квантовым сканнером.


Рис. 8.2.

Задача 8.2. Что будет, если изменить базис только в одном бите? Например, как будет выглядеть матрица оператора, схема которого изображена на рисунке? Попробуйте также поменять базис в другом бите.


Вернемся к построению схемы для универсальной переборной задачи. Оракул U=I-2\ket{y_0}\bra{y_0} нам задан, и мы реализовали оператор V=I-2\ket{\xi}\bra{\xi}. Из вектора \ket{0^n} можно получить вектор \ket\xi применением оператора W ( W^2=I ). Теперь с помощью операторов U и V построим из вектора \ket{\xi} искомый вектор \ket{y_0}. Для этого будем поочередно действовать операторами V,U:

\dots V\,U\,V\,U\,\ket\xi=(VU)^s\ket\xi.
Что при этом получается? Геометрически оба оператора есть отражения относительно гиперплоскости. Подпространство \calL=\CC(\ket\xi,\ket{y_0}) инвариантно относительно обоих операторов, а, значит, и относительно VU. Поскольку вектор \ket{\xi} принадлежит этому подпространству, достаточно рассмотреть действие VU на нем.

Композиция двух отражений относительно двух прямых есть поворот на удвоенный угол между этими прямыми. Угол легко вычислить, \displaystyle \langle \xi| y_0\rangle =\frac{1}{\sqrt{N}}=\sin\frac{\varphi}{2}, т.е. эти прямые почти перпендикулярны. Поэтому можно написать VU=-R, где R — поворот на малый угол \varphi. Но тогда (VU)^s=(-1)^sR^s, где R^s — поворот на угол s\varphi. Знак нас не интересует (фазовые множители не меняют вероятностей). При больших N имеем \varphi\approx\slashfrac{2}{\sqrt{N}}. Тогда после s\approx\slashfrac{\pi}{4}\sqrt{N} итераций исходный вектор повернется на угол s\varphi\approx\slashfrac{\pi}{2} и станет близок к искомому вектору. Это и означает, что система окажется в состоянии \ket{y_0} с вероятностью, близкой к единице.


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

< Лекция 7 || Лекция 8: 123 || Лекция 9 >